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.
Einfach mit q beenden, das wäre hier alles
Die Wirkung ist schlicht ein Eintrag in der Registry:
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:
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:
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
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.)