🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: de.comp.lang.c++
Article #1140

PIT-Ports

#1140
From: Philipp Kursawe
Date: Fri, 19 Jan 1996 18:03
69 lines
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!philipp

Show 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