Article View: de.comp.lang.c++
Article #1140PIT-Ports
From: Philipp Kursawe
Date: Fri, 19 Jan 1996 18:03
Date: Fri, 19 Jan 1996 18:03
69 lines
2394 bytes
2394 bytes
Hi All!
Ich habe mal versucht, mit dem PIT zu arbeiten (Ports 0x40-0x43);
herausgekommen ist dabei u.a. folgendes kleines Testprogramm, das den
Counter auf 0xFFFF setzt und anschließend gleich wieder ausliest;
Rückgabewert ist die Differenz von 0xFFFF und dem Ergebnis - normalerweise
also 0, wenn's mal lange dauert, 1.
Soweit, so gut, solange man das Programm nicht unter Windows laufen läßt,
werden auch solche Werte ausgegeben, nach Beendigung des Programmes gibt
es aber einige Probleme: Entweder stürzt der Rechner an dieser Stelle
gleich ab, oder spätestens, wenn man das nächste Mal versucht, Windows zu
starten.
Auch ein anderes Phänomen ist zu beobachten: Wenn es gelingt, das Programm
mehrmals hintereinander laufen zu lassen, so kommen in etwa einem von hundert
Fällen vollkommen falsche Werte heraus.
Und zum dritten: Unter Windows ergeben sich nur falsche Werte.
Meine Fragen also:
1. Gibt es irgendwelche Besonderheiten bei der Programmierung von Ports oder
speziell der Ports 0x40,0x43 ?
2. Wie funktioniert der PIT unter Windows ?
------------------------------------cut----------------->8----------------
#include <iostream.h>
#include <conio.h>
typedef unsigned char byte;
typedef unsigned short word;
word prb()
{
asm{
cli
mov al,0x34
out 0x43,al
mov al,0xFF
out 0x40,al
out 0x40,al
mov al,0x34
out 0x43,al
in al,0x40
mov bl,al
in al,0x40
mov bh,al
mov ax,0xFFFF
sub ax,bx
sti
}
return _AX;
}
void main()
{
cout << prb() << "\n";
getch();
}
------------------------------------cut----------------->8----------------
_
...und tschüß, |_)hilipp
|/
|\ursawe
+----------------------------------------+
Copy not found - Operator halted
+------------FIDO: 2:249/999-------------+
## CrossPoint v3.1 ##
Technical Details
Message-ID:
<618buvxcGCB@philipp.top.east.de>Path:
arc1-ca.pugleaf.net!top.east.de!philippShow Full Headers
Complete Article Headers
X-Mailer: CrossPoint v3.1 via [DOS/NCBMail V2.21 REL.:031295] Message-ID: <618buvxcGCB@philipp.top.east.de> X-Gateway: ZCONNECT TG top.east.de [DUUCP vom 01.07.1994] MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8bit From: philipp@top.east.de (Philipp Kursawe) Subject: PIT-Ports Date: 19 Jan 1996 19:03:00 +0100 Path: arc1-ca.pugleaf.net!top.east.de!philipp Newsgroups: de.comp.lang.c++,de.comp.lang.c Distribution: world