
                                                       Chemnitz, den 26.09.1994
 Sehr geehrte c't-LeserIn!
 =========================

 Diese Datei enthlt einige wichtige  Informationen und Hinweise  zu den beiden
 Programmen INFO und STAT,  die Sie auf der Heft-Diskette zur Ausgabe 11/94 des
 c't-Magazins  in Anlehnung an  meinen Artikel  ber undokumentierte Funktionen
 des Intel Pentium-Prozessors mit dem Titel 'Zwischen den Zeilen' finden.

 Bitte lesen Sie diesen Text aufmerksam bis zum Ende durch,  da Sie sonst viel-
 leicht nicht alle Funktionen der Programme ausnutzen knnen.  Wichtig sind die
 folgenden Hinweise  vor allem fr die Leser,  die einen Speicher-Manager (z.B.
 EMM386, QEMM386, 386MAX) oder WINDOWS bzw. OS/2 auf Ihrem Rechner benutzen!


 1.  Das ist Shareware!
 ======================

 Bevor ich zu den versprochenen Details komme,  sei mir noch gestattet,  darauf
 hinzuweisen,  da es sich  bei diesen beiden Programmen  um Shareware handelt.
 Der immense Aufwand  beim Erstellen von INFO und STAT  hat mich  dazu bewogen,
 diesen Schritt zu tun, um so - untersttzt durch alle ehrlichen und treuen An-
 wender dieser Vertriebs-Form - vielleicht wenigstens einen Teil der investier-
 ten Zeit und Arbeit in einen kleinen 'Gewinn' zu verwandeln.

 Sollten Sie zu den Lesern gehren,  die sich mit dem Shareware-Prinzip bereits
 auskennen,  dann knnen Sie die nchsten Zeilen berfliegen  und meine Adresse
 sowie den 'Preis' auf einem Info-Bildschirm beim Starten der Programme nachle-
 sen. Und wenn Sie zu den Shareware-Nutzern gehren, die sich eh nie registrie-
 ren lassen wollen, da das ja mit Aufwand und Geld verbunden ist, dann sind ja
 meine Worte sowieso fr die Katz'...

 Ansonsten stelle ich folgende 'Bedingungen' fr die Anwendung von INFO und von
 STAT auf:  Sie drfen diese beiden Programme 14 Tage (und natrlich  gern auch
 Nchte) lang benutzen und dabei ausgiebig auf Herz und Nieren testen, ohne sie
 zu bezahlen.  Die 14 Tage beginnen - logischerweise - zu dem Zeitpunkt, an dem
 Sie INFO und STAT erhalten.  Wenn Ihnen  die Programme (wider Erwarten!) nicht
 gefallen sollten, dann haben Sie zwei Mglichkeiten.  Sie knnen sie zum einen
 wieder lschen, oder sie knnen sie  zum anderen an Freunde oder Bekannte wei-
 tergeben (auf da jene sich damit herumqulen mgen).

 Wenn Ihnen INFO und STAT jedoch zusagen und Sie meinen,  da Sie sie weiterhin
 benutzen wollen (was vor allem fr Pentium-Besitzer und STAT gilt!), dann sein
 Sie bitte so fair  und lassen Sich - via berweisung von 15,-DM oder 10 USD an
 mich - registrieren.  Sie erhalten dann eine Kopie der neuesten Versionen, ein
 paar andere Shareware-Programme (ggf. auch nach Wunsch) und - das ist ganz be-
 sonders interessant - ich lasse Sie bestimmte Passagen  meiner Quelltexte ein-
 sehen. Sie mssen schon zugeben, da das ein tolles Angebot ist, oder?

 Alle notwenigen Daten, wie meine Adresse oder die notwendige Konto-Nummer fin-
 den Sie auf einem roten  Info-Bildschirm,  welcher nach dem Programm-Start er-
 scheint. Entweder warten Sie dort eine Minute, oder Sie drcken eine Taste, um
 mit dem Programm fortzufahren. Okay, das war's schon!


 2.  Hard- und Software
 ======================

 Wenn Sie INFO und STAT benutzen wollen, dann mssen Sie schon einen IBM-kompa-
 tiblen PC besitzen. Zum Glck sind alle neueren PCs (mehr oder weniger) in der
 Lage, IBMs Originale zu imitieren.  Fr INFO reicht dabei schon der lteste XT
 mit einem 8088-Prozessor;  bei STAT hingegen mu es schon das andere PC-Extrem
 sein - ein Pentium-PC (oder etwas dazu voll kompatibles) ist notwendig.

 Ansonsten geben sich beide Programme recht bescheiden: Sie laufen auch mit 512
 Kilobyte Hauptspeicher und sogar ohne Festplatte! In Sachen Grafikkarte klappt
 der Spa auch mit allen herkmmlichen Modellen  von Hercules der CGA, EGA und
 VGA bis hin  zur neuesten SVGA-Beschleunigerkarte.  Es wird ja eh nur der gute
 alte Text-Modus benutzt.  Hat da gerade jemand nach einer  WINDOWS-Version ge-
 fragt?  Benutzen Sie doch bitte die DOS-Version  und schalten Sie auf Fenster-
 Ansicht um - und schon haben Sie Ihr heigeliebtes Fensterchen...

 Lediglich bei STAT wre anzumerken,  da es sich - sollten Sie die Mglichkeit
 benutzen, es  resident im Speicher zu installieren - mit knapp 70 Kilobyte be-
 gngt:  ca. 40K fr's Programm, 16K zum Retten des Bildschirm-Inhaltes, 8K fr
 den Stack und dann auch noch ein bichen Platz fr anderen 'Mll'...

 In Punkto Software (sprich Betriebssystem) sieht es eigentlich auch recht sim-
 pel aus:  Ein zu MS-DOS 3.3 kompatibles DOS drfte gengen. Genau kann ich das
 aber nicht sagen, da ich es nur unter MS-DOS ab 5.0 und mit einem DR-DOS 5 & 6
 testen konnte. Wenn's Probleme geben sollte, dann melden Sie Sich halt bei mir
 und wir kreisen Ihre Sorgen dann gemeinsam ein, okay?

 Jetzt kommt aber der eigentliche Haken.  Und der betrifft  nur all jene Leser,
 die einen 80386er oder was Besseres haben  und die einen Speicher-Manager ver-
 wenden oder sonstwie mit dem virtuellen Modus des Prozessors in Berhrung kom-
 men. Da gilt es nmlich einige Sachen zu beachten!


 3.  INFO und seine Parameter
 ============================

 Im Real-Modus sollte es  keine Probleme  mit INFO geben.  Hier werden auch der
 sogenannte Cache-Switch-Test (ab 80486er)  und der Triple-Fault-Reset-Test (ab
 80386er) ausgefhrt.  Sollte sich Ihr Rechner beim Schalten des Caches 'verab-
 schieden', so mssen Sie den Parameter /C benutzen, um den Test zu verhindern.
 Verkraftet Ihr Motherboard hingegen den Reset-Test nicht, so benutzen Sie halt
 den Parameter /R beim Starten von INFO. Sie knnen brigens alle Parameter die
 es gibt zugleich benutzen - Null Problemo!

 Whrend /C und /R nur eine Bedeutung haben, whrend sich Ihr Prozessor im Real
 Mode befindet, kommen im virtuellen Modus die Parameter /D und /T und auf 'nem
 Pentium-PC auch noch /P und /M in Frage.

 Mit /D verhindern Sie, da INFO auf der zweiten blauen Seite, die nur dann er-
 scheint, wenn Sie mindestens einen 80386er haben,  die Debug-Register des Pro-
 zessors ausliest und anzeigt. Manche Betriebssystem oder Speicher-Manager rea-
 gieren hier etwas harsch,  ebenso wie einige Prozessoren die ungenutzten Regi-
 ster DR4 und DR5 gar nicht besitzen.  Gleiches gilt fr die  Test-Register und
 den Parameter /T. Ein Pentium hat brigens keine seperaten Test-Register mehr;
 diese befinden sich nun in den modellspezifischen Registern (MSR).

 Auf 80386er- und 80486er-PCs sollte es nun keine Stolpersteine mehr geben. Nur
 der Pentium - oder besser: einige Speicher-Manager - bereiten jetzt noch etwas
 Kopfzerbrechen.

 Wie Sie  in meinem Artikel  nachlesen knnen,  beherrscht der Pentium ein paar
 vollkommen neue Prozessor-Befehle. Hauptschlich verwendet INFO dabei die zwei
 Instruktionen RDTSC (zum Auslesen des Time Stamp Counters) und RDMSR (zum Aus-
 lesen eines MSRs). Da nun der Groteil der Speicher-Manager geschrieben wurde,
 als der Pentium noch eine Fata Morgana am Hardware-Horizont war,  tauchen hier
 Probleme auf - Stichworte 'Invalid Opcode Exception' oder 'Privileg-Stufen'...

 Sollte der Prozessor auf einen dieser neuen Befehle stossen,  so wird meistens
 der Speicher-Manager 'zu Rate gezogen'.  Kennt er einen Befehl nicht,  so wird
 er natrlich verhindern, da dieser ausgefhrt wird - logisch, denn nur so ist
 er in der Lage, seine und Ihre Arbeit sicher zu gestalten.

 Wenn Sie also in einer DOS-Box unter WINDOWS versuchen sollten, einen Pentium-
 typischen Befehl zu verwenden, so wird die Box (nach Meldung einer Schutz-Ver-
 letzung) geschlossen. Unter DOS mit EMM386 sehen Sie zwar keine solche schne
 Meldung mehr, aber der PC 'verabschiedet' sich trotzdem ins Nirwana.

 Entweder sind also die Befehle im Speicher-Manager  als nicht vorhanden und so
 als ungltig deklariert,  oder aber sie sind nur  in der Privileg-Stufe 0 ver-
 wendbar (so z.B. WRMSR), in der ja  der Manager oder  WINDOWS luft  und nicht
 das Anwendungs-Programm selbst. Okay, unter WINDOWS ist es derzeit (noch) mg-
 lich,  durch Tricks auf die Privileg-Stufe 0 zu gelangen - unter DOS und einem
 Speicher-Manager klappt das jedoch nicht mehr ganz so einfach.

 Sie mten dafr schon die GDT (Global Descriptor Table)  oder die IDT (Inter-
 rupt Descriptor Table) modifizieren.  Sie mten ein Call-Gate einrichten, da
 seinerseits auf ein CPL=0-Segment verweist  und Sie mten  es fr alle Privi-
 leg-Stufen benutzbar machen. Sie mten einen Exception-Handler einrichten und
 auch dieser mte auf CPL=0 laufen.  Und nicht zuletzt mten Sie es schaffen,
 die GDT oder die IDT  wirklich zu modifizieren.  Dafr brauchen Sie aber etwas
 wie DPMI  (ja, dieser Absatz ist wirklich nur den Profis  unter den Lesern ge-
 widmet) und genau das haben Sie unter DOS mit EMM386 nicht! Nun, sollte es bei
 Ihnen diesbezglich (wider Erwarten) Erfolge geben, so schreiben Sie unbedingt
 einen Artikel fr die c't darber und lassen es mich wissen...

 Okay, lange Rede - kurzer Sinn:  Unter dem derzeit aktuellen EMM386 von MS-DOS
 Version 6.2  funktioniert zwar der RDMSR-Befehl,  aber nicht der RDTSC-Befehl.
 Und das liegt definitiv am EMM386.  Sie mssen also den Parameter /P benutzen,
 um ohne den RDTSC-Befehl zu starten.  Wenn Ihr Pentium-PC dann aber immer noch
 stockt,  so mssen Sie auch noch den Parameter /M verwenden,  um den RDMSR-Be-
 fehl zu deaktivieren. Dann sehen Sie zwar auch keine MSR-Inhalte mehr (und die
 Taktfrequenz kann nicht mehr gemessen werden) - aber INFO luft so auch in der
 WINDOWS-DOS-Box ohne Probleme.

 Unter Quarterdecks QEMM 7.04 - der ist brigens eine wahre Fundgrube  fr alle
 Pentium-Programmierer! - sieht das wesentlich erfreulicher aus: Mit diesem Ma-
 nager  stehen Ihnen alle neuen  Pentium-Befehle - ob privilegiert oder nicht -
 auch auf der Privileg-Stufe 3 zur Verfgung.  Okay, ich mu zugeben,  da hier
 der Unterwanderung jeglicher Schutz-Mechanismen des Protected-Modes vielleicht
 Tr und Tor geffnet wurden. Aber solange Intel die genaue Belegung aller MSRs
 nicht preisgibt, ist das noch in weiter Ferne...

 Fr 386MAX, die OS/2-DOS-Box und die WINDOWS NT-DOS-Box  kann ich leider keine
 genauen Angaben machen,  da mir diese Systeme  nicht zur Verfgung stehen. An-
 sonsten gilt also:

    DOS ohne Manager      starten mit   INFO
    DOS mit EMM386 4.48   starten mit   INFO /P
    DOS mit QEMM 7.04     starten mit   INFO
    WINDOWS 3.1 DOS-Box   starten mit   INFO /P /M

 Fr die neueste Kreation von Microsoft - den EMM386 4.49 - gilt (leider!) noch
 immer, da RDTSC zum Absturz fhrt. Und was WINDOWS 4.0 betrifft - ???

 Zum Schlu bleibt fr INFO und den Pentium nur noch anzumerken,  da vorausge-
 setzt wird,  da der Time Stamp Counter TSC sich im MSR 10h befindet.  Das ist
 nur fr die Taktfrequenzbestimmung wichtig: Ist der RDTSC-Befehl nicht benutz-
 bar oder via /P deaktiviert, so versucht INFO, den TSC ber RDMSR auszulesen!


 4.  STAT und seine Parameter
 ============================

 Kommen wir nun zum eigentlichen Star.  Mit STAT knnen Sie auf dem Pentium das
 Laufzeit-Verhalten  eines beliebigen Programms analysieren.  Und genau deshalb
 heit dieses Verfahren ja auch Performance-Analyse.

 Um Ihnen die Anwendung  so flexibel  wie nur irgend mglich zu gestalten, habe
 ich STAT zwei Arbeits-Modi gegnnt:  Sie knnen es zum einen resident im Spei-
 cher installieren  und so die Performance jederzeit abrufen  und Sie knnen es
 andererseits so starten,  da alle verfgbaren Informationen ber ein fast be-
 liebiges Programm in einer Text-Datei vermerkt werden.

 Wenn Sie beim Starten von STAT keinen Parameter angeben, so wird der residente
 Modus benutzt. Das Programm belegt dabei knapp 70 Kilobyte Speicher und kann -
 sofern Sie ber gengend Platz verfgen - in den hohen Speicher geladen werden
 (man nehme LOADHIGH unter MS-DOS).

 Achtung! Wenn Sie einen Speicher-Manager benutzen,  dann wird STAT Sie fragen,
 ob Sie wirklich weitermachen wollen. Das hat aber nur unter QEMM 7.04 wirklich
 Sinn, da er die Pentium-Befehle gestattet. Unter EMM386 oder WINDOWS wird STAT
 trotz Ihrer Zustimmung beim Messen der Taktfrequenz 'beendet sein'...

 Nach dem Shareware-Hinweis  gelangen Sie zum Arbeits-Bildschirm von STAT. Hier
 knnen Sie die  in meinem Artikel beschriebenen zwei Counter programmieren und
 deren Ergebnisse live einsehen. Ich mu mir echt selber auf die Schulter klop-
 pen, wenn ich die unwahrscheinlich effiziente Tasten-Belegung sehe...

 Um den Counter Nr.#0 zu programmieren (er steht links), mssen Sie jeweils die
 linke [Shift]-Taste gedrckt halten, whrend Sie eine (Funktions-) Taste drk-
 ken. Und fr den Counter #1 (der ja rechts steht) gilt - na, ahnen Sie's schon
 oder nicht? - rechte [Shift]-Taste gedrckt halten! Toll, was?

 Zuerst sollten Sie also fr den Counter ein Ereignis auswhlen. Dazu stehen ja
 immerhin ber 40 Stck zur Verfgung- siehe die Tabelle in meinem Artikel. Man
 drcke also [+] und [-] zusammen mit der entsprechenden [Shift]-Taste,  um die
 Ereignis-Nummer zu erhhen oder zu erniedrigen - mathematisch gesehen 1...

 Dann wre zu entscheiden, ob Ereignisse ('events') oder Takt-Zyklen ('clocks')
 zu zhlen sind. Man drcke also [E] oder [C] plus [Shift]-Taste. Weiterhin ist
 es auch mglich,  zu entscheiden,  auf welchen Privileg-Stufen  gezhlt werden
 darf und soll. Zur Verfgung stehen hier CPL=none, 0..2, 3 oder all. Das heit
 nichts anderes, als entweder gar nicht zu zhlen, oder nur 'im' Speicher-Mana-
 ger (falls vorhanden; im Real-Modus luft hier natrlich das Anwender-Programm
 selbst!!!), oder nur im Anwender-Programm (nur im virtuellen Modus luft es im
 CPL=3!!!) oder aber berall (Speicher-Manager und Anwender-Programm). Dazu ist
 dann [N], [0], [3] bzw. [A] zzgl. [Shift] zu drcken.

 Um die Counter zu synchronisieren (sprich: sie gleichzeitig laufen zu lassen),
 drcken Sie [R] fr 'Restart'.  Wenn Sie dabei die entsprechende [Shift]-Taste
 gedrckt halten,  dann wird nur der entsprechende Counter neu gestartet, sonst
 betrifft diese Handlung beide Counter.

 So, nun laufen also beide Counter. Dann sehen Sie auer dem Wert des TSCs Time
 Stamp Counters, der ja bei jedem internen Takt-Zyklus um 1 erhht wird und der
 daraus berechneten Zeit seit dem letzten Kalt-Start Ihres PCs  auch die Ergeb-
 nisse Ihrer Bemhungen mit den Countern.

 Zum einen werden  die aktuellen Counter-Werte  angezeigt - also die Anzahl der
 Ereignisse bzw. Takt-Zyklen fr das gewhlte Ereignis. Weiterhin sehen Sie na-
 trlich, wie lange der Counter schon luft. Hier eine kleine Warnung dazu: Der
 TSC ist 64 Bit breit und kann so einige Tausend Jahre zhlen, ehe er berluft
 und wieder mit 0 beginnt. Die Counter #0 und #1 sind aber nur 40 Bit breit und
 knnen so im ungnstigsten Fall nach 3 bis 5 Stunden  (je nach Geschwindigkeit
 Ihres Pentiums)  bereits berlaufen. Was dann passiert? Nichts. Nur die Ergeb-
 nisse knnen Sie dann unter Ulk verbuchen.

 Auerdem sehen Sie noch drei weitere Angaben.  Erstens zeigt STAT an, wieviele
 Takt-Zyklen vergehen, wenn der Counter sich um 1 erhht (sogeannte 'clocks per
 increment').  Zweitens sehen Sie,  wie oft der Counter pro Sekunde erhht wird
 ('increments per second'). Drittens werden die Werte der beiden Counter zuein-
 ander ins Verhltnis gesetzt ('values per other value').

 Daraus ergeben sich vielfltige Mglichkeiten fr Sie. Ich mchte Ihnen einige
 davon hier kurz vorstellen:

    Counter #0:   event 16h, count events, count all
    Counter #1:   event 16h, count clocks, count all
    Ergebnisse: - Takt-Zyklen pro Befehl in CTR#0 'clocks per increment' oder
                  in CTR#1 'value per other value' (sollte etwa gleich sein)
                  Da der Pentium 2 Pipelines U und V besitzt  und daher im gn-
                  stigsten Fall zwei Befehle  pro Takt-Zyklus  gleichzeitig ab-
                  arbeiten kann,  ist hier ein Wert 'gut', der sich 0,5 nhert.
                  Wrde 0,5 erreicht, so wre das  Takt-Zyklus pro Befehl oder
                  aber eben 2 Befehle pro Taktzyklus (optimales Pipelining!).
                - Befehle pro Taktzyklus in CTR#0 'value per other value'
                  Da der Pentium wie eben beschrieben  im besten Fall 2 Befehle
                  pro Takt-Zyklus  verarbeiten kann,  sollte hier also ein Wert
                  grer als 1 stehen. 'Sau-gut' wre ja dann der Wert 2...
                - MIPS-Leistung in CTR#0 'increments per second'
                  Hier knnen Sie ablesen, wieviele Befehle pro Sekunde der bei
                  Ihnen arbeitende Pentium momentan abarbeitet. Dieser Wert ist
                  auch als MIPS (million instructions per second) bekannt - Sie
                  mssen die groe Zahl halt nur durch 1.000.000 teilen!
                - Interne Takt-Frequenz in CTR#1 'increments per second'
                  Schlielich knnen  Sie hier sehen,  mit welcher Geschwindig-
                  keit Ihr  Pentium luft - einfach durch 1.000.000  teilen und
                  schon haben Sie die interne MHz-Frequenz!

 Natrlich sind das nur ein paar Beispiele. Wenn Sie alle Ereignisse ausnutzen,
 dann knnen Sie sicher noch mehr solche interessanten Zahlen finden. Letztlich
 ist es auch ganz sinnvoll, zwei Ereignisse zu zhlen, die vom Typ her zueinan-
 der 'passen' - zum Beispiel also die Anzahl der Befehle in beiden Pipelines zu
 der Anzahl der Befehl in der zweiten Pipeline V usw. - probier'n Sie's aus!

 Okay, die Counter sind gestartet.  Verlassen Sie nun STAT vorlufig, indem Sie
 die [ESC]-Taste drcken. Jetzt installiert sich das Programm resident im Spei-
 cher und wartet  auf seine erneute Aktivierung.  Dafr ist die Taste [F12] zu-
 stndig.  Ich habe sie gewhlt, weil sie in den meisten Programmen unbenutzt -
 sprich ohne Funktion - ist.  Sollte es damit einmal Probleme geben,  so teilen
 Sie mir das bitte mit.  Ich werde mich  dann dazu aufraffen,  eine Funktion in
 STAT einzubauen, welche eine beliebige Taste als 'Hotkey' ermglicht. Der Teil
 des Programms, welcher dafr zustndig ist, wurde bereits dafr ausgelegt, mit
 jeder nur erdenklichen Tastenkombination zu arbeiten - aber bisher sehe ich da
 keine Notwendigkeit, mir die Arbeit noch schwerer zu machen...

 STAT wird Ihnen nun noch ein paar Worte nahelegen.  Wenn Sie es via [F12] auf-
 rufen wollen, so knnen Sie das jederzeit tun - in fast allen Video-Modi! Mmh,
 auf diese Funktion bin ich besonders stolz.  Sie funktioniert zum einen in all
 den bekannten Standard-Video-Modi bis 13h  und darberhinaus auch in allen 16-
 und 256-Farben Modi  einer SVGA-Karte,  sofern sich die Modi ber das BIOS an-
 steuern lassen. Was also nicht funktioniert sind die die erweiterten Text-Modi
 132x44, 80x60 usw. (die z.B. meine  TSENG-bestckte  Karte bietet). Hier 'zer-
 schiet' STAT beim Aufruf via [F12] den oberen Teil des Bildschirms.

 Gleiches gilt  fr 'selbstgestrickte' Grafik-Modi (320x480x256 o..)  und alle
 Grafik-Modi mit mehr als 256 Farben (Hi- und TrueColor). Die ersteren program-
 mieren die VGA-Karte so stark um, da ich den Aufwand scheue, den Zustand dort
 zu retten und die zweiteren sind leider meistens nicht ber das normale Video-
 BIOS ansteuerbar - hier fehlt einfach ein einheitlicher Standard. Sorry!

 *  Hoppla! Nun habe ich gerade noch einmal ein paar letzte Tests auf einem  *
 *  mir zur Verfgung stehenden Pentium-PC durchgefhrt - und schon mu ich  *
 *  die vor ein paar Tagen  hier gemachten Versprechen bezglich der tollen  *
 *  Mglichkeiten zur Unterbrechung aller BIOS-Grafik-Modi widerrufen! Mein  *
 *  Test-Rechner hatte eine S3-805-Karte (miro 8S PCI) und weigerte sich so  *
 *  doch glatt,  in allen Modi >13h  einen Pop-Up via [F12] durchzufhren -  *
 *  nein, der Rechner blieb dabei einfach 'hngen'...            So'n Mist!  *
 *  Okay, mu ich mich also korrigieren: Auf einer Tseng ET4000-basierenden  *
 *  Karte klappt die Angelegenheit zu vollster Zufriedenheit - und basta!!!  *

 Ein letztes Manko von STAT ist,  da der Zustand der Maus nicht gesichert bzw.
 restauriert wird.  Sicher werden mir einige unter Ihnen jetzt sagen, da diese
 Aufgabe doch via INT 33h sehr einfach zu erledigen sei. Doch halt - leider un-
 tersttzen nicht alle Maus-Treiber die entsprechenden Unter-Funktionen richtig
 und ich spare mir auch hier einfach mal den Aufwand. Nehmen Sie's gelassen!

 Ansonsten sollte es aber mglich sein, mit STAT so ziemlich jedes bekannte und
 genutzte Programm einwandfrei zu unterbrechen. Bezglich einer WINDOWS-Sitzung
 mit vorher geladenem STAT gebe  ich keine Garantien - ich habe es einfach noch
 nie selbst probiert - dazu ist mir  mein harterkmpftes, absturzfreies WINDOWS
 einfach etwas zu schade. In einer DOS-Box luft STAT aber nicht, da ja WINDOWS
 wieder die neuen Pentium-Befehle nicht durchgehen lt.  Sicher - mit der DLL,
 welche die c't-Redakteure schreiben wollen, wre ein Ausflug auf die Privileg-
 Stufe 0 vielleicht auch fr STAT machbar - aber der Aufwand...

 brigens ist die Logik fr den residenten Teil  so schlau,  da sie selbst er-
 kennt, wann STAT nicht aktiv werden darf. So zum Beispiel whrend Festplatten-
 Aktivitten.  Und wenn es auf  [F12] mal nicht reagieren sollte,  dann kann es
 sein, da Ihr PC zur Zeit einfach zu beschftigt mit sich selbst ist. Ich rate
 Ihnen also ganz einfach,  STAT vorsichtig zu verwenden, da residente Programme
 meist ein  Risiko fr den Rest  des Systems darstellen - sollten Sie irgendwie
 Daten verlieren,  so bernehme ich  keine Haftung.  Sie benutzen STAT also auf
 Ihr eigenes Risiko hin!

 Gut. Nachdem Sie STAT nun ausgiebig benutzt haben, wollen Sie es ja vielleicht
 auch mal wieder aus dem Speicher entfernen.  Nicht einfacher als das - starten
 Sie es einfach noch einmal!  Wenn Sie  seit der Installation von STAT in Ihrem
 Speicher  kein weiteres Programm resident geladen haben,  dann drfte es damit
 keine Probleme geben und STAT entfernt sich selbst.

 Anders, wenn Sie danach ein weiteres TSR geladen haben - hier bleibt STAT beim
 Versuch, sich aus dem Speicher zu entfernen dennoch im selbigen drin, schaltet
 sich aber inaktiv.  Scheinbar sind Sie  STAT dann also los - auch wenn es noch
 immer in den Tiefen Ihres Speichers schlummert  und auf seine erneute Aktivie-
 rung wartet.  Wenn Sie STAT dann wieder starten, so wird es einfach wieder an-
 geschaltet. Erst wenn das spter geladene TSR wieder entfernt wurde, lt sich
 auch STAT wieder entfernen. Einfach, praktisch und genial, oder?

 So. Nun wollen Sie - nach ausgiebigen  residenten Versuchen - auch einmal eine
 komplette Analyse durchfhren?  Geben Sie einfach  den Namen des Programms als
 Parameter an, welches sie testen wollen.  Achtung! Hier knnen Sie ausschlie-
 lich .COM- oder .EXE-Dateien angeben.  Sollte sich die Datei nicht im gleichen
 Verzeichnis befinden, so mssen Sie STAT schon den vollen Pfad mit angeben!

 Ich habe es als Beispiel immer mit STAT C:\WINDOWS\WINVER.EXE probiert. Es ist
 kurz und hat funktioniert.

 Nun wird STAT Sie ggf. wieder fragen, ob Sie - falls im virtuellen Modus - die
 Analyse auch wirklich wollen (geht nur mit QEMM!).  Auerdem will das Programm
 noch von Ihnen wissen, in welcher Privileg-Stufe Sie zhlen mchten.  Hier ha-
 ben Sie die  Auswahl zwischen [0] fr CPL=0..2, [3] fr CPL=3 und [A] fr CPL=
 all. Ist eigentlich ganz einfach, oder?

 Dann wird STAT versuchen, die von Ihnen angegebene Datei zu starten. Klappt da
 irgenwas nicht, so bricht das Programm ab.  Ansonsten wird Ihre Geduld nun auf
 eine kleine Probe  gestellt - Ihr gewnschtes Programm  wird pro mglichem Er-
 eignis 1x gestartet,  um das Ereignis und die verstrichenen Takt-Zyklen zhlen
 zu knnen. Und 42 Starts knnen ganz schn an den Nerven zerren...

 Keine Bange, STAT meldet sich auch  nach jedem geglckten Versuch kurz auf dem
 Bildschirm.  Sie sehen also immer, was gerade passiert - es sei denn, Ihr Pen-
 tium-PC ist so schnell, da Sie mit dem Lesen nicht mehr nachkommen sollten...

 Am Ende werden Sie eine Datei mit dem Namen STAT.LOG vorfinden.  Achtung! Wenn
 diese Datei bereits bestand,  dann wird sie mit den neuen Daten berschrieben!
 In dieser Datei finden Sie alle Ergebnisse in einer Tabelle.  Wenn Sie die Ta-
 belle auch einmal drucken wollen, dann knnen Sie STAT mit dem Parameter /S zu
 einer Ausgabe von maximal 80 Zeichen pro Zeile zwingen.  Der Aufruf wrde dann
 in etwa so aussehen:  STAT /S C:\WINDOWS\WINVER.EXE.  Hier fehlt dann aber die
 letzte Spalte der Tabelle.

 Das war's dann eigentlich auch schon.  Ach ja,  ich mchte hier noch anmerken,
 da ich teilweise das Gefhl habe,  Intel hat die Performance Analyse absicht-
 lich nicht dokumentiert.  Nicht nur, um einen  kleinen Vorsprung gegenber den
 Clone-Herstellern zu wahren  und das Wissen  ggf. nur gegen Cash freizugeben -
 nein, ich habe das Gefhl, da die Funktionen teilweise nicht ganz korrekt ar-
 beiten! Aber das werden Sie vielleicht auch selbst sehen...


 5.  Fragestunde
 ===============

 Sollten Sie Fragen  zu INFO und STAT haben,  so stehen Ihnen mehrere Ansprech-
 partner zur Verfgung. Zum einen knnen Sie Sich jederzeit an mich wenden. Ich
 wrde mich freuen,  wenn Sie Ihre Anfragen dabei schriftlich bermitteln knn-
 ten (Brief oder Fax),  da ich zum Zeitpunkt des Erscheinens  der c't 11/94 mit
 groer Wahrscheinlichkeit nur noch am Wochenende unter dem angegebenen Telefon
 zu erreichen bin. An Wochentagen kann Ihnen dort keiner Ihre PC- oder Pentium-
 spezifischen Fragen beantworten! Tut mir leid - ist aber nicht zu ndern!

 Hier also nochmal meine Adresse: Christian Ludloff
                                  Stichwort c't-Artikel
                                  Ludwig-Khn-Strae 15
                                  D-09123 Chemnitz
                                  Tel/Fax (0)371-242091

 Auerdem knnen Sie Sich auch immer Montags bis Freitags von 13-14 Uhr via Te-
 lefon an die c't-Redaktion wenden. Der zustndige Redakteur, Herr Siering, ist
 unter der Nummer +49-(0)511-5352-333 erreichbar.  Die Redaktion wird alle Fra-
 gen, die sie nicht beantworten kann (sowie alle schriftlichen Anfragen) sofort
 an mich weiterleiten.

 Fr die ganz neugierigen unter Ihnen noch ein paar Worte zu den Programmen. Da
 ich leider selbst keinen Pentium-PC besitze,  mu ich auf einem hochgetakteten
 i486 DX2-80 (mit aktiver Khlung!!!) versuchen, alle Tcken und Probleme eines
 Pentiums im voraus zu erahnen und zu umgehen. Nur zum Testen steht mir hin und
 wieder eine 60MHz-Version kurz zur Verfgung. Ich denke aber, das reicht.

 Programmiert habe ich INFO und STAT mit Turbo Pascal 7.0 und dem Turbo Assemb-
 ler 3.2 von Borland.  Insgesamt handelt es sich um ein .ASM-Modul mit etwa 800
 Zeilen Quelltext  fr einige  spezielle Funktionen,  etwa 800 Zeilen Quelltext
 fr INFO in Pascal mit viel eingestreutem Assembler, etwa 800 Zeilen Quelltext
 fr STAT  mit noch mehr  Assembler (in 32 Bit; via 'DB 66h'-Statements...) und
 nochmals ca. 1500 Zeilen Assembler- und Pascal-Quelltext fr die TSR-Unit, die
 ich in STAT verwende. Insgesamt habe ich etwa drei Monate damit verbracht, den
 heutigen Stand zu erreichen (das Wissen, den Artikel und die Software).

 Zum Schlu mchte ich noch anmerken,  da ich mir alle Rechte an meinen beiden
 Programmen vorbehalte. Sie drfen Sie benutzen - und sonst nix! Verndern oder
 Verkaufen, Disassemblieren oder Debuggen und die Aufnahme in das Angebot eines
 Shareware-Versandes oder das Pressen auf CD-ROMs gestatte ich nicht. Okay, bei
 den letzten beiden Punkten erwarte ich nur, da man mich vorher fragt.

 Gut. Gewappnet mit allen, mir momentan eingefallenen Informationen ist es wohl
 endlich an der Zeit, zur Tat zu schreiten. Probieren Sie INFO und STAT nun aus
 und denken Sie auch nochmal  ber die Geschichte  mit dem Registrieren fr nur
 15,-DM oder 10 USD nach, nachdem Sie die volle Leistung entfaltet haben...

 Ich bedanke mich fr Ihre Aufmerksamkeit und verbleibe mit den besten Wnschen

                                                          Ihr Christian Ludloff


                             ******* ENDE *******
