Data I/O 2700

Dieses betagte Programmiergerät aus dem Jahr 1995 mit dem Programm WINCHIP.EXE läuft nicht unter Windows XP. Das betrifft gleichermaßen Windows 2000, Vista, 7 und 8.

Ursache: Die Portzugriffe auf die Standard-Portadresse 378h des eingebauten Parallelports werden teilweise von ntvdm.exe verschluckt.

Lösung für echtes Parallelport unter Win2K/XP/Vista/7/8 32bit

Man nehme meine inpout32.dll (Wichtig: Dateidatum ab 12. Oktober 2014!), extrahiert die inpout32.dll heraus und installiert einen VDD-Hook durch Aufruf von rundll32 inpout32,Info.

Screenshot
Einfach mit q beenden, das wäre hier alles

Die Wirkung ist schlicht ein Eintrag in der Registry:

Screenshot
In der Registry gibt es einen Verweis auf die inpout32.dll. Dieser wird von ntvdm.exe gelesen

Den Erfolg kann man durch Aufruf von debug (DOS debug) prüfen — wenn vorhanden:

Screenshot
Im BIOS-Datenbereich 40:8 sind die Parallelportadressen verändert. Normalerweise steht da BC 03 78 03 78 02

Das Programm schließlich muss auf Adresse 100 (hex ist gemeint, für LPT1) gestellt werden. Es zieht nicht (wie vielleicht andere Programme) den BIOS-Datenbereich heran.

Roaming winchip.exe

Das installierte Programm verweigert seinen Dienst, wenn man es von einem anderen Betriebssystem aus startet ohne es erneut zu installieren. Lästig.

Folgende Dateien sollten aus dem Installations-Windows-Verzeichnis ins Verzeichnis zu winchip.exe bewegt werden:

  • ctrl3dv2.dll (vielleicht)
  • rdm330.dll (?)
  • hypr*.*
  • mfcoleui.dll
Folgende Datei muss aus dem Installations-Windows-Verzeichnis in das aktuelle Windows-Verzeichnis kopiert werden:
  • winchip.ini
Beachte: Die Datei winchip.ini enthält u.a. folgende Einstellungen:
  • [ALG-DATABASE] …
    • path1= Pfad zu den Programmieralgorithmen. Hier unbedingt den kurzen (8.3) Dateipfad angeben!
  • [hardware-interface] …
    • port= die ausgewählte Portnummer, 1 = 0x378, 2 = 0x278, 3 = 0x3BC, 4 = wahlfrei
    • port-addr= die wahlfreie Portadresse dezimal
Im übrigen handelt es sich um Bloatware. Sogar gespeicherte HEX-Dateien werden mit überflüssigen, mit Leerzeichen aufgefüllten Leerzeilen am Ende ausgespuckt.

Lösung für „unechtes“ Parallelport

Unübliche Portadressen für das Parallelport, normalerweise ein großes Ärgernis von PCI- und PCIexpress-Karten, machen für dieses Programm keine Probleme! Einfach die (erste) Portadresse, die im Gerätemanager angezeigt wird, eintragen und benutzen.

☺ Daher gibt's auch keine komplizierte Lösung.

Lösung für 64-bit-Windows

Keine Lösung!

16-bit-Programme laufen nicht. Beschweren Sie sich bei Microsoft. wine für Windows dürfte Ihr Problem nicht wirklich lösen, sondern nur neue schaffen.

Erst die Offenlegung des Quelltextes oder zumindest der Parallelport-Schnittstelle und Neuerstellung eines 32- oder 64-Bit-Programms schafft Abhilfe. (Im übrigen auch eine rasante Beschleunigung des USB2LPT.) Aber das wird der Hersteller nicht wollen, er will ja seine USB-Programmiergeräte verkaufen.

Lösung für USB-Konverter

  • Foto von hinten
  • Innenfoto
Sollte man sich genau überlegen! Auch mein High-Speed-USB2LPT ist gähnend langsam. Es funktioniert, immerhin. Einen 64-KByte-EPROM auszulesen dauert:
  • 3 Minuten mit echtem Parallelport
  • 22 Minuten mit USB2LPT 1.7
Das Programmieren von Schaltkreisen, die definierte Programmierimpulslängen benötigen, ist mit modernen Betriebssystemen sowieso heikel. Es ist hier unklar, ob die Pulslängen von der Hardware oder der Windows-Software generiert werden.

Dazu musste eine störende Firmware vom EEPROM gelöscht werden; Vorgehensweise:
  • Jumper (auf der Platine rechts unten am 24LC128) ziehen und Adapter an USB anstecken
  • EZUSB (usb2lpt.zip/src/fwutils/ezusbw2k.sys) am Rechner enumerieren lassen
  • Jumper stecken
  • "brenner.exe usb2lpt2.iic" ausführen, Seriennummerneingabe ignorieren
  • USB2LPT (usb2lpt.zip/de/usb2lpt.inf) enumerieren lassen
  • "LöscheFirmware.exe" ausführen (das löscht das ärgerliche 0xC0-Byte am Anfang)
Weiteres Vorgehen wie in der Anleitung zum USB2LPT 1.7 (ab Mitte des Films).
Im Versuch wurde kurzerhand ein geeigneter Adapter bei eBay gekauft, verdrahtet und mit der USB2LPT-Firmware gefüllt.

Das Programmiergerät hat kein Problem mit 3,3-V-Pegeln und den fehlenden Pull-Ups an den Statusleitungen; die Leitungslängen sind ja auch minimal.

Es ist vorteilhaft, sowohl für den Adapter (siehe Geräte-Manager) als auch in der Software (winchip.exe) eine Nicht-Standard-Portadresse einzustellen, wie oben angegeben. Dann werden Debugregister-Traps nicht benötigt.

Besser man achtet beim Kauf des Laptops auf einen ExpressCard-Slot und beschafft für diesen einen Parallelport-Adapter, bspw. diesen.

Man achte beim Kauf eines solchen Adapters darauf:

  • Dass dieser via PCIexpress und nicht via USB läuft (seriöse Händler können Auskunft geben, unseriöse: Finger weg!)
  • Dass Ihr Betriebssystem in der Liste der unterstützten Betriebssysteme tatsächlich gelistet ist
Beim Betriebssystem-Update kann allerdings alles wieder in die Binsen gehen, da Microsoft aufs neue versucht, alte Schnittstellen kaltzustellen. (Das betrifft u.a. sämtliche auch Marken-PCI-Netzwerkkarten mit BNC bereits unter Windows Vista.)