Data I/O 2700

Diese Seite als .CHM [Einsicht] für eine Installationdiskette mit usb2lpt und inpout32.
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 mein inpout32.zip (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. Das verhindert auch den bequemen Start von einem USB-Stick.

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

Folgende Datei muss aus dem Installations-Windows-Verzeichnis in das aktuelle Windows-Verzeichnis kopiert werden:

Beachte: Die Datei winchip.ini enthält u.a. folgende Einstellungen:

Im Fall USB-Speicherstick kann eine kleine .cmd-Datei das Problem lösen und vor dem Start von winchip.exe diese Datei ins Windows-Verzeichnis kopieren — und nach dem Beenden zurück. Außerdem kann diese gleich den Pfad zu den Programmieralgorithmen anpassen, inpout32.dll starten usw.

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. Sowie des gesamten Programmiergerätes. Abgesehen davon, aktuelle Chips brennen zu können.) Aber das wird der Hersteller nicht wollen, er will ja seine USB-Programmiergeräte verkaufen.

Lösung für USB-Konverter

Sollte man sich genau überlegen! Auch mein High-Speed-USB2LPT ist gähnend langsam. Es funktioniert, immerhin. Einen 64-KByte-EPROM auszulesen dauert:

Ich wiederhole noch mal gebetsmühlenartig: Es liegt nicht am USB2LPT, dass alles so langsam ist, sondern an der Closed-Source-Programmiersoftware.

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:

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.)