TP 6 & TP 7 unter Windows XP
#1
Hallo,

hat noch  jemand Turbo Pascal 6 und/oder 7 auf einem Windows XP Rechner laufen ?
Falls "im Prinzip: ja", funktioniert das jetzt auch noch ?

MfG Kai
Zitieren
#2
(10.01.2021, 02:46)kaimex schrieb: hat noch  jemand Turbo Pascal 6 und/oder 7 auf einem Windows XP Rechner laufen ?

Planst Du die Eröffnung eines Software-Museums? Big Grin 

Im Ernst: Warum möchtest Du noch irgendwelche 30 Jahre alten Compiler benutzen? Soweit ich mich entsinne, kann Free Pascal doch auch 16-Bit-Real-Mode-Programme erzeugen. Selbst wenn man bestehenden Quelltext geringfügig anpassen muss, ist das doch eine sinnvolle Investition in die Zukunft.

Wenn es unter Windows XP nicht laufen sollte, wäre DOSBOX unter Windows oder Linux eventuell eine Option. Alte DOS-Spiele laufen da bei mir immer sehr flüssig, und meine alte C-Entwicklungsumgebung für DOS funktioniert auch noch ohne Probleme.

   
Zitieren
#3
Moin moin Timo,
nein , ich plane kein Museum, ich habe wohl schon eins, denn hier gibt es noch alle Computer, die ich seit Anfang der 80er Jahre gehabt habe, etliche noch betriebsfähig, darunter 2 Apple ][ Clones, ein IBM-kompatibler mit DOS und Windows 95, ein Colani-Laptop mt DOS und Win 3.1, ein LapTop und ein Desk-Bottom mit Windows XP, zwei mit Windows 7, einer mit Linux Mint 18.3, einer mit Linux Mint 20.1, ein Raspi3B+ mit 'nem anderen Linux. Auf den Apple-Clones läuft auch, wenn gewünscht CP/M auf Z80 CPUs. Man kann aber auch was anderes auf 68008 oder 65808 machen.
DOSBOX hab ich auch, ist aber ein langsamer Emulator, lief allerdings sogar auf dem Android-Tablet, das ich mal hatte.
Unter Win XP , Windows 7 und auf dem Raspi benutze ich auch Free Pascal als 32-Bit Compiler, auf dem Raspi unter Lazarus.
Auf einem der DOS-Rechner läuft alte selbst gebaute Meß-Hardware auf Karten in IBM-Slots, die es in den neueren Rechnern nicht mehr gibt. Diese Hardware erfüllt immer noch einen guten Zweck und kann nicht mal eben nachgekauft werden. Sie ist in TP6 oderTP7 programmiert worden, teils auf dem DOS-Rechner selbst, teils auf dem Windows-XP Laptop, wegen der größeren Bequemlichkeit.
Ich habe im Lauf der Jahre viele nützliche Tools/Programme mit TP6 & 7 geschrieben. Beide Compiler waren bis vor kurzem noch auf dem XP-Laptop nutzbar, auf dem DOS-Rechner geht es immer noch. Als ich in den letzten beiden Tagen ein Programm modifizieren wollte, das ich mal zum Datentransfer zwischen "IBM"-PC und Apple ][ geschrieben hatte, stellte ich fest, daß keiner der beiden Compiler auf dem XP-Rechner nach Start Eingaben vom Keyboard oder der Mouse annimmt. Man kann nur das Fenster minimieren oder schließen. Alte dort programmierte Tools zeigen nach Start nur noch den Cursor in der linken oberen Ecke oder die erste Eingabe-Abfrage und verhalten sich danach wie die Compiler-Windows. Ich meine, ich hätte die gegen Ende von 2020 noch ohne Probleme benutzt.
Es wäre ziemlich mühsam, die vielen Programme nun mal eben mit Free Pascal neu zu erzeugen. Da ist doch allerlei Anpassung erforderlich.
Deshalb zielt meine Frage darauf ab, ob es hier unter Windows bei den beiden Compilern und den beim Compilieren eingebauten Run-Time Libraries einen "Jahr 2021"-Fehler gibt, der sich durch einen Patch beheben läßt, so wie es bereits einen Patch gab, um den Absturz von Turbo-Pascal Programmen auf schnellen Rechnern zu verhindern, weil die Original 16-Bit Zähl-Routine zur delay-Eichung bei Initialisierung per Overflow Crash bewirkte. 
Es ist schon ein schmerzlicher Verlust, wenn "mit einem Schlag" allerlei nützliche Programme und ihre Erzeuger ausfallen.

MfG Kai
Nachtrag:
Inzwischen habe ich mal den "Desk-Bottom" Windows XP Rechner angeworfen. Für den mußte ich zunächst ein Display organisieren, danach hatte er Anlaufschwierigkeiten wegen "aller" Batterie. Nun ist er aber hochgekommen und läuft unter Windows XP Professional. Und, oh Wunder, Tp6 & 7 sowie damit erstellte Programme laufen auch problemlos, als gäbe es kein Jahr-2021-Problem.

Bleibt die Frage, warum ist es auf dem Laptop mit Windows XP (Home) nicht mehr genauso ?
Wie kann man das Problem beseitigen ?

Noch ein Nachtrag: Was lernt man daraus ?
Es schadet nicht, noch einen älteren Rechner in Reserve zu haben.
Zitieren
#4
Hallo Kai,

eine Abhilfe weiß ich nicht, aber vielleicht könntest du schauen, ob dein XP-Laptop allgemein Probleme mit der NTVDM hat, also konkret: ob denn andere 16-Bit-Programme funktionieren. Ich habe schon lang kein XP mehr in Betrieb, glaube mich aber zu erinnern, daß ein 32-Bit-XP mit dem DOS-Programm "EDIT" ausgeliefert wird. Kannst du das auf dem Laptop in einem Konsolenfenster starten und benutzen?

Welchen Patchstand (Service-Packs, Updates) haben denn deine beiden XP-Rechner?

Soweit ich weiß, wird die NTVDM übrigens in allen 32-Bit-Versionen von Windows weiterhin unterstützt. Auch auf der 32-Bit-Edition eines zeitgemäßen Windows 10 müßte Turbo Pascal also noch laufen.

Viele Grüße
Moritz
Zitieren
#5
Hallo Moritz,
das ist ein interessanter Hinweis. Allerdings müßte ich mich erstmal über NTVDM informieren.
Ich bin ziemlich sicher, daß beide Compiler Varianten und die damit erzeugten Programme im letzten Jahr noch auf dem Laptop funktioniert haben.
Ob ich noch andere 16 Bit Programme darauf habe, müßte ich "ergründen".
Von einem DOS-Programm namens "Edit" weiß ich nichts. "Edit" wird in den deutsch-sprachigen Versionen von Windows ein Windows-Programm genannt, das sonst unter "NotePad" firmiert.
Aber ich habe tatsächlich auch noch DOS-Rechner (bzw Win 95 und Win 3.1), da sollten 16-Bit Programme drauf sein.
Das XP auf dem Laptop hat SP2. Ich glaube SP3 wegen gehörter Probleme bzw Komplikationen nicht eingespielt zu haben.
Bei dem anderen Rechner müßte ich nachschauen, was gemeldet wird. Das war ein ehemaliger Büro-Rechner, der bis zur Außer-Dienst-Stellung ständig am Netz hing, während der Laptop nie am Netz war, also auch nie Updates von Microsoft bekommen hat.
Da es aber bis in jüngere Vergangenheit funktioniert hat, muß da also irgendein Betriebssystem-Bestandteil, zB dies NTVDM, beschädigt oder stillgelegt worden sein, auf dem anderen Rechner aber nicht.
Kann man dies NTVDM reparieren oder vom anderen Rechner dahin kopieren ?
Oder sonst wie einen Reparaturgang starten, falls ich noch Installations-CDs für XP finde) ?

MfG Kai
Nachtrag:
Ich habe zwei Rechner mit Windows 7, keinen mit Windows 10.
Der erste ist ein Netbook mit 32-Bit Win 7, der zweite eine große Kiste unterm Tisch mit Windows 7 64-Bit, der die Ausführung von 16-Bit-Programmen mit der üblichen Ausrede von wegen "inkompatibel" verweigert und rät, man möge doch nach einer kompatiblen Version des Programms suchen. Offenbar hatte Microsoft keine Lust, ein NTVDM für 64 Bit zu erzeugen.
Nachtrag2:
Ich habe mal 2 Programme von einem DOS-Rechner per Diskette zum LapTop gebracht und gestartet. Beide haben noch die alte *.com Endung. Beide starten, bekommen aber offenbar keine Keyboard-Zeichen, wenn ich tippe. Die Reaktion ist also wie bei den Tp-Programmen.
ntvdm ist vorhanden in windows\system32 als *.exe und *d.dll, in windows\I386 als *.EX_ und *D.DL_ und in windows\servicepackfiles\i386 als *.exe. Ich kann aber nicht erkennen, ob in Ordnung.
Nachtrag3:
Dann habe ich die Programme vom Netbook mit Win 7 32-Bit per LAN gestartet: da reagieren sie auf Keyboard-Eingaben, scheinen also zu funktionieren.
ntvdm wird allerdings von Explorer++ auf diesem Rechner nicht gefunden. Heißt das Tool da anders ?
Nachtrag4:
Ich habe "kurzer Hand" TP7 zum Netbook kopiert und gestartet. Es funktioniert.
Beim LapTop ist also irgendwas in der NTVDM bzw in dem Umfeld beschädigt oder fehlt.
Nachtrag5:
Inzwischen habe ich auf dem Laptop SP2 nach-installiert. Hat leider nichts geändert. Allerdings ging die Installation auch so schnell vonstatten (einige Minuten statt angekündigter bis zu 2 Stunden), daß ich nicht sicher bin, ob wirklich installiert wurde.
Zitieren
#6
Hallo Kai,
NTVDM ist eine Komponente von (32-Bit-)Windows, die dafür sorgt, daß 16-Bit-Anwendungen ausgeführt werden können. Ich denke nicht, daß du da irgendwas suchen, kopieren oder installieren brauchst.
Bzgl. "EDIT": Ich meine das DOS-Programm EDIT.COM, nicht den Editor. Öffne doch mal einen Kommandoprompt und gib "edit" ein.
Um den Updatestand zu überprüfen, könnte es hilfreich sein, im Versionsdialog (Start | Ausführen... | "winver") und in den Systemeigenschaften (Start | Ausführen... | "sysdm.cpl") nachzuschauen.
kaimex schrieb:Windows 7 64-Bit, der die Ausführung von 16-Bit-Programmen mit der üblichen Ausrede von wegen "inkompatibel" verweigert und rät, man möge doch nach einer kompatiblen Version des Programms suchen. Offenbar hatte Microsoft keine Lust, ein NTVDM für 64 Bit zu erzeugen
Naja, Lust. Die CPU unterstützt es halt nicht. Auf Wikipedia steht dazu:
Zitat:Die Virtual DOS Machine macht sich den Virtual 8086 Mode von x86-Prozessoren zunutze, um DOS-Programme auszuführen. Da jedoch der Virtual-86-Modus nicht mehr funktioniert, wenn der Prozessor bereits in den 64-Bit-Modus Long Mode geschaltet wurde, wird NTVDM bei 64-Bit-Versionen von Windows nicht mehr mit ausgeliefert.[1] Die für Linux entwickelte virtuelle DOS-Umgebung DOSEMU teilt dieses Schicksal.
Möglicherweise ist tatsächlich irgendwas an der XP-Installation beschädigt. Ich würde auf jeden Fall mal versuchen, alle Service-Packs installieren und das XP auf den aktuellen Patch-Stand heben. (Von Winfuture gibt es Update-Packs für XP.)
Viele Grüße
Moritz
Zitieren
#7
Hallo Moritz,

ein "Edit.com" habe ich auf einem DOS-Rechner gefunden. Das war allerdings nur ein paar hundert Byte lang. Nach Aufruf auf dem Laptop kommt die Meldung "Kann QBasic nicht finden" o.ä.
Ich habe den Test deshalb mit anderen 16-Bit Programmen durchgeführt und bereits weiter oben mitgeteilt, daß keines mehr auf dem Rechner funktioniert.
Außerdem habe ich, wie schon weiter oben geschrieben, eine Installation von Service Pack 2 angestoßen. Das Programm hat die vorhandene Installation inspiziert, nicht gemerkt/gemeldet, daß SP2 schon installiert war und so getan, als würde es installieren. Das hat aber nichts an dem Problem geändert.
Ich habe mich noch nicht  getraut, SP2 erst zu de-installieren und dann von CD zu installieren.
Auf dem anderen Rechner mit Win XP befindet sich eine englische Version. Da hat ntvdm.exe schon eine andere Länge und teils anderen Inhalt (zB englische statt deutsche Meldungen).
ntvdmd.dll sind auf beiden Rechnern exakt gleich groß, aber die im englischen XP ist nicht identisch mit der deutschen Version.
Ich bräuchte jetzt ein Programm, das in der Lage ist, den Programm-Ablauf nach Start zu "tracen". Ich habe es mit "depends" versucht, das meckert aber sogleich wegen "16Bit-Programm", ist offenbar nur für 32-Bit-Programme geeignet.

MfG Kai
Zitieren
#8
Hallo Kai,

wenn du solch forensische Methoden nicht scheust, dann könntest du mal Process Monitor probieren (cf. https://superuser.com/questions/1131344/...izesrwlock für eine Version, die noch unter XP läuft). Außerdem gibt es den Process Explorer (Wikipedia hat einen Verweis auf die letzte XP-kompatible Version), damit müßte es möglich sein, den Call-Stack des hängenden Programms abzugreifen. Freilich hilft das nur, wenn sie in einem Syscall feststeckt (was aber anzunehmen ist).

Wenn ich solche Hänger bei gewöhnlichen (32-Bit- oder 64-Bit-)Anwendungen erlebe, dann hilft mir meist der VS-Debugger und "Attach to process...".

Bei allen drei Werkzeugen weiß ich aber nicht, wie sie mit Real Mode- und Protected Mode-Programmen umgehen. Könnte sein, daß man mit dem Debugger einer antiken VS-Version Erfolg hat.

Vielleicht betrifft das auch nur Text-mode-Programme? Hast du auch irgendwo ein 16-Bit-Windows-Programm rumliegen? Falls die funktionieren, könntest du auch probieren, den Debugger einer alten Version von Visual C++ oder von Borland C++ for Windows auf ein DOS-Programm loszulassen.

Viele Grüße
Moritz
Zitieren
#9
Hallo Kai,

hast Du mal über eine Virtuelle Maschine, oder eine Emulation der alten Umgebung nachgedacht? Gerade wenn moderne Prozessoren nicht mehr die gewohnten alten Features haben, könnte das eine Lösung sein. Du könntest eine dedizierte (alte) Windows-Version mit der nötigen Version von TurboPascal darin aufsetzen, und die virtuelle Maschine nur dafür verwenden. Dann können Dir keine anderen installierten Programme in die Quere kommen.

Ich habe vor längerer Zeit für sowas mal QEMU verwendet, gibt es auch in einer Windows-Version, natürlich Open Source, und es emuliert auch andere Prozessoren als den Host, auf dem Du bist.

Viele Grüße
Andreas
Zitieren
#10
Hallo,

Process Monitor und Process Explorer kenne ich, war aber noch nicht auf die Idee gekommen, daß die hier helfen könnten.
Dem VS-Debugger bin ich noch nicht begegnet.
16 Bit Windows Programme habe ich sicher unter Windows 95 und Windows 3.1, sehe aber nicht, wie die ohne ihre Umgebung unter Windows XP laufen könnten.
Der Debugger von TP7 wird so wenig laufen wie TP7 selbst. Von Visual-C habe ich nur mittel-alterliche Versionen und Borland-C für Windows gar nicht, weil ich unter Windows Delphi benutzt habe.

Ein virtuelle Maschine möchte ich nicht verwenden, solange ich noch Original-Systeme laufen habe, auf denen die Software mal funktioniert hat und ausreichend schnell lief. Es ist mir einfach unsympathisch, ein ganzes Windows XP mit etlichenen Giga-Byte Betriebssystem unter Windows 7 zu implementieren, um Programme von einigen 10 kB oder 100 kB laufen lassen zu können.

Mich ärgert natürlich, daß bei dieser Fehlfunktion überhaupt keine Meldung vom Betriebssystem kommt, was da warum schief geht.

MfG Kai
Zitieren
#11
Hallo Kai,

wenn du Delphi 1 hast, könntest du das auch probieren, das ist eine 16-Bit-Windows-Anwendung. Ich weiß aber nicht, ob der Debugger "Attach to process" kann.

Borland C++ for Windows gibt es auf archive.org: https://archive.org/details/BorlandC5.0_201705/
Ich meine mich zu erinnern, daß Version 4.5 noch 16-Bit war und Version 5.0 dann 32-Bit.

Mich würde an deiner Stelle wohl auch interessieren, was da schief läuft; aber der schnellste Weg zum Ziel ist es sicherlich nicht.

Bzgl. VM: du mußt ja nicht gleich ein XP betreiben, MS-DOS oder Windows 3.1/9x reicht für diesen Zweck. Aber ich würde empfehlen, daß du zuvor DOSBox nochmal eine Chance gibst. Ich kann mir schwerlich vorstellen, daß das langsamer läuft als die Originalhardware, für die du einstmals deine TP-Programme geschrieben hast.

Viele Grüße
Moritz
Zitieren
#12
Hallo Moritz,
ich hatte mal Delphi 3 und auf dem XP Laptop ist Delphi 7 installiert.
Ich erinnere mich, vor vielen Jahren auch mal Borland-C benutzt zu haben, kann aber nicht sagen, ob das noch irgendwo drauf ist.
Außer Turbo Pascal gab es auch mal Borland Pascal (ich vermute von der 7ner Version).
Die DOSBox ist mir ein bischen zu umständlich. Habe ich aber auch schon gelegentlich benutzt unter Windows 7 64Bit. Geschwindigkeit kann man einstellen, ist bei einem Interpreter aber eben immer langsamer, insbesondere bei Grafik.
DOSBox oder ein Äquivalent gibt es auch für Android. Hatte ich sogar auf meinem früheren 10"-Tablett und konnte damit alte Elektrotechnik-Programme laufen lassen.
Es soll sogar die gleiche Funktionalität unter Linux geben.
Ich würde aber viel lieber den XP-Rechner wieder dazu bringen, die Programme wie noch im letzten Jahr wieder auszuführen.

MfG Kai
Zitieren


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste