File: /~heha/hs/gerald.zip/DURCHGRI.TXT

Durchgriff, c't 1/97 S. 312, as
--------------------------------
Programme für Windows NT 4.0

durchgri.txt   ; das hier
directnt.cpp   ; Listing des Treibers, Kompilation erfordert DDK
directnt.sys   ; Treiber fertig kompiliert
directnt.h     ; Include-Datei, die die Schnittstelle definiert
directnt.rc    ; Ressource-Datei
cx.cpp         ; Cyrix 6x86 Konfigurationsprogramm: Source
cx.exe         ; Cyrix 6x86 Konfigurationsprogramm: ausführbar
cxe.exe        ; ditto in english
showmem.cpp    ; Beispielprogramm für den Umgang mit Directnt
showmem.exe    ; ausführbar
showmeme.exe   ; ditto in english
setup.exe      ; Installer für den Treiber
setup.cpp      ; Source dazu
setup.rc       ; Ressource-Datei
inst.bat       ; Lädt Treiber
stop.bat       ; Entlädt Treiber
m.bat          ; "Makefile" für Visual C++ 2.0 für directnt.sys
               ; als Batch-Datei (Pfade anpassen !!!)
giveio.sys     ; Direct I/O aus Dr. Dobb's 5/96
directio.zip   ; Sources und Readme aus Dr. Dobb's 5/96
               ; aus ftp://ftp.mv.com/pub/ddj/1996/1996.05/directio.zip

--------------------------------------------------------------

Der Treiber Directnt.sys ermöglicht direkte Zugriffe auf Ports und
PCI, auf die Prozessorregister CR0, MSR und auf den Speicher
(physikalisch adressiert). Die unterstützten Funktionen sind in
directnt.h aufgelistet.

CX korrespodiert mit dem Treiber. Es ermöglicht, diverse Features
des Cyrix 6x86-Prozessors zu aktivieren (oder abzuschalten), darunter
die Write-Back-Strategie des L1-caches, die NT 4.0 bei
Cyrix-Prozessoren bis Version 2.6 auf langsames Write-Through
umschaltet. Daneben kann man den Suspend on Halt Modus
einschalten, was sehr viel Strom spart, und außerdem Zugriffe auf den
Framebuffer beschleunigen.

Hinzugekommen gegenüber der Heftversion ist die Ausgabe von
CPUID-Enable, Write-Allokation und Linear Burst. Die ersten
beiden lassen sich auch neu setzen.

("Parameter: /WB :L1-Cache Write Back,  /WT : Write Through \n");
("           /SP :Suspend on HALT aktiv,/NSP: passiv\n");
("           /FF :Fast Framebuffer     ,/NFF: Slow\n");
("           /ID :CPUID an             ,/NID: CPUID aus\n");
("           /WA :Write Allocation an  ,/NWA: Write Allocation aus\n");
("           /Wait: Console wartet auf Taste");

Geändert wurde ferner der Speicherzugriff auf physikalische
Addressen (die ursprünglich linearen Adressen erzeugen zu leicht
einen Pagefault => blue Screen). Beispielprogramm dafür:

Showmem xxx yyy

zeigt die Inhalte der physikalischen Adressen von xxx bis yyy an.

Eingefügt wurde bei SETCR0 auch wbinvd, damit die
Cache-Konsistenz beim Umschalten gewahrt bleibt -- (das war
ursprünglich auch vorgesehen, führte aber zum Absturz. Grund: der
Befehl asm __wbinvd wird von Visual C++ 2.0 falsch assembliert,
ein 0FFh zu viel !!!!).

Installation
-----------------------------------------------------
Zunächst muß der Treiber einmalig mit Setup.exe installiert werden.
Dann ist das System neu zu booten. Danach steht der Treiber
dauerhaft den Applikationen zur Verfügung. Man kann dann mit CX
/... den Prozessor konfigurieren. Zweckmäßigerweise wird man CX
mit den gewünschten Parametern in den Startup-Ordner legen. Wer
will kann sich mit /wait die Consol-Ausgabe von CX anschauen (sie
wartet dann auf einen Tastendruck).

Mit stop.bat kann man den Treiber entladen, mit inst.bat wieder neu
laden (sehr praktisch zum Testen neuer Treiber-Versionen).

Mit giveio.sys von Dale Roberts aus Dr.Dobb's 5/96 kann man sich
den I/O-Bereich komplett freischalten lassen (auch für die
DOS-Box). Ist allerding recht gefährlich. Näheres dazu in der
Readme-datei in directio.zip!

Fragen, Anregungen, Kritik => as@ct.heise.de




Detected encoding: OEM (CP437)1
Wrong umlauts? - Assume file is ANSI (CP1252) encoded