Quelltext /~heha/hs/gerald.zip/DURCHGRI.TXT

Durchgriff, c't 1/97 S. 312, as
--------------------------------
Programme fr 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: ausfhrbar
cxe.exe        ; ditto in english
showmem.cpp    ; Beispielprogramm fr den Umgang mit Directnt
showmem.exe    ; ausfhrbar
showmeme.exe   ; ditto in english
setup.exe      ; Installer fr den Treiber
setup.cpp      ; Source dazu
setup.rc       ; Ressource-Datei
inst.bat       ; Ldt Treiber
stop.bat       ; Entldt Treiber
m.bat          ; "Makefile" fr Visual C++ 2.0 fr 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 ermglicht direkte Zugriffe auf Ports und
PCI, auf die Prozessorregister CR0, MSR und auf den Speicher
(physikalisch adressiert). Die untersttzten Funktionen sind in
directnt.h aufgelistet.

CX korrespodiert mit dem Treiber. Es ermglicht, 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 auerdem Zugriffe auf den
Framebuffer beschleunigen.

Hinzugekommen gegenber 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");

Gendert wurde ferner der Speicherzugriff auf physikalische
Addressen (die ursprnglich linearen Adressen erzeugen zu leicht
einen Pagefault => blue Screen). Beispielprogramm dafr:

Showmem xxx yyy

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

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

Installation
-----------------------------------------------------
Zunchst mu der Treiber einmalig mit Setup.exe installiert werden.
Dann ist das System neu zu booten. Danach steht der Treiber
dauerhaft den Applikationen zur Verfgung. Man kann dann mit CX
/... den Prozessor konfigurieren. Zweckmigerweise wird man CX
mit den gewnschten 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 fr die
DOS-Box). Ist allerding recht gefhrlich. Nheres dazu in der
Readme-datei in directio.zip!

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




Vorgefundene Kodierung: UTF-80