@Skilltronic,
absolut richtig.
Der "PIT" ist auch unter W95/98 noch erreichbar. Aber ab WinNT/2k/XP/ME nicht mehr. Nur mit einem eigenen Treiber. Oder man verwendet die Funktionen QueryPerformanceCounter(...) und QueryPerformanceFrequency(...) (funktionieren auch unter W95/98 ), die eben genau diesen Counter des 8253 auslesen. In den Chipssätzen der Mainbords gibt es den (Uralt-)IC 8253 nicht mehr. Aber seine Funktionalität ist aus Kompatibilitätsgründen in den Chipsätzen mit enthalten. Genauso wie die von 16550 und anderen.

Meine Antworten bezogen sich auch nur auf C/C++-Code für W32-Systeme, nicht auf Basic (für 16Bit-Systeme), weil der Zugriff auf Hardware-Addressen in W32-Systemen gesperrt ist. Deshalb auch mein Vorschlag, DOS zu nutzen. Dann hat man auch alle Vorteile der hardwarenahen Programmierung, die Du genannt hast.

@bwirmer,
WindowsCE ist kein Echtzeitsystem. Nur ein abgespecktes 32Bit-Windows, das aus genau diesem Grund recht schnell ist.

Hier einmal zum Verständnis das Hauptmerkmal eines Echtzeit-OS:
Jedes von außen eintreffende Ereignis (z.B.: an einem Port) muß nach einer durch die Programmierung festgelegten Zeit (abhängig vom Code und vom Maschinentakt) zu einer Reaktion an einem anderen Port in IMMER der gleichen Zeit führen, egal, was der Prozesser/Rechner gerade macht. Ob das Minuten oder Microsekunden sind, spielt dabei gar keine Rolle - es muß nur immer die gleiche (vorausberechnete) Zeit sein, egal, ob der Rechner gerade die Datenbank abgleicht, das Netzwerk durchsucht, im IDLE-Modus rumrennt oder sonstwas macht.

Naja, egal wie, für unsere (Amateuer-)Anwendungen gibt es eine Menge Möglichkeiten, mit vorhandenen PCs und OS quasi Echtzeitanwendungen, auch für kurze Reaktionszeiten zu "bauen". Das hat der Thread hier schön zusammengefaßt.

Blackbird