Pakete für Turbo-Pascal: Turbo Professional und Turbo Talk
-
- Beiträge: 10
- Registriert: So 18. Jun 2017, 18:36
Re: Pakete für Turbo-Pascal: Turbo Professional und Turbo Ta
ja, bitte gerne.
meine Kontaktdaten findest du unter http://zeilhofer.co.at/kontakt
meine Kontaktdaten findest du unter http://zeilhofer.co.at/kontakt
-
- Beiträge: 10
- Registriert: So 18. Jun 2017, 18:36
Re: Pakete für Turbo-Pascal: Turbo Professional und Turbo Ta
ich bekomm in Turbo Pascal 6.0 unter MS-DOS grad die Fehlermeldung: "Error 1: Out of memory."
Wie kann ich das beheben?
Unter Options waren für Stack size 16k und für Heap 64k eingestellt. Hab das nun auf 30k und 200k erhöht, ändert aber nix. Fehlermeldung kommt genau an der gleichen Stelle.
Ich glaub, der Compiler selbst hat "zu wenig" Speicher. Die Datei hat 1000 Zeilen, und die Prozedur, in der der Fehler auftritt ca. 680 Zeilen.
Wie kann ich das beheben?
Unter Options waren für Stack size 16k und für Heap 64k eingestellt. Hab das nun auf 30k und 200k erhöht, ändert aber nix. Fehlermeldung kommt genau an der gleichen Stelle.
Ich glaub, der Compiler selbst hat "zu wenig" Speicher. Die Datei hat 1000 Zeilen, und die Prozedur, in der der Fehler auftritt ca. 680 Zeilen.
Re: Pakete für Turbo-Pascal: Turbo Professional und Turbo Ta
Wieviel Speicher ist vor dem Start von TP noch frei? Es gab da doch sowas wie MEM, mit dem man den freien Speicher abfragen konnte. Mein DOS6.22-VM hat 522KB frei, und da läuft Borland Pascal 7 einwandfrei. Ansonsten war damals der Trick, alles mögliche in den EM/XMS-Speicher auszulagern (LOADHI o.ä. - ich hab das alles vergessen).
Borland Pascal musste man übrigens patchen, um es auf modernen Rechnern laufen lassen zu können (siehe Anhang). Wie es bei Turbo 6 ist, weiß ich nicht
P.S.
Der beigefügte Patch ist nur zur Information gedacht. Angewendet auf TP6 wird er sicher nicht funktionieren, da er die system.tpu verändert, die je nach Version verschieden ist.
Borland Pascal musste man übrigens patchen, um es auf modernen Rechnern laufen lassen zu können (siehe Anhang). Wie es bei Turbo 6 ist, weiß ich nicht
P.S.
Der beigefügte Patch ist nur zur Information gedacht. Angewendet auf TP6 wird er sicher nicht funktionieren, da er die system.tpu verändert, die je nach Version verschieden ist.
- Dateianhänge
-
CRTFix.zip
- (29.87 KiB) 74-mal heruntergeladen
-
- Beiträge: 10
- Registriert: So 18. Jun 2017, 18:36
Re: Pakete für Turbo-Pascal: Turbo Professional und Turbo Ta
585kByte sind noch frei vor dem Start von turbo.exe
ich probiers nun mal mit dem Kommandozeilen-Kompiler, der braucht viele Optionen, aber vielleicht braucht er auch weniger Speicher..
Danke für den Hinweis mit der Geschwindigkeit. Das Problem ist mir bei der Recherche schon untergekommen - aber noch ist es nicht soweit.
ich probiers nun mal mit dem Kommandozeilen-Kompiler, der braucht viele Optionen, aber vielleicht braucht er auch weniger Speicher..
Danke für den Hinweis mit der Geschwindigkeit. Das Problem ist mir bei der Recherche schon untergekommen - aber noch ist es nicht soweit.
- Dateianhänge
-
- 2017-06-22_004.png (5.27 KiB) 3047 mal betrachtet
-
- Beiträge: 1224
- Registriert: So 20. Mär 2016, 22:14
- OS, Lazarus, FPC: Win7-64bit Laz1.9.0 FPC3.1.1 für Win, RPi, AVR embedded
- CPU-Target: Raspberry Pi 3
Re: Pakete für Turbo-Pascal: Turbo Professional und Turbo Ta
Wenn die TTalk die serielle Schnittstelle bedient, kannst Du das eh vergessen.
Damals wurde auf die Serielle per Register zugegriffen, sprich da wurden an bestimmte Speicheradressen bestimmte Werte geschrieben um sie zu aktivieren und Daten zu senden, und aus anderen Adressen gelesen um die Daten abzufragen. Das wurde unter Windows95 dann teilweise, unter Windows98 völlig unterbunden. Ist auch sinnvoll, weil eine Serielle heutzutage eben nicht mehr ein adressierbarer Steckplatz auf einer ISA-Karte ist, sondern auch ein USB-seriell-Wandler sein kann. Das Ansprechen erfolgt über Treiber.
Ergo musst Du die Funktionen der Ttalk mit modernen Zugriffsmethoden nachbauen. Entweder über das erwähnte Synase oder über die serial.pp, die etwas einfacher zu handhaben ist und eigentlich auch alles kann. Wenn da allerdings Bitbanging betrieben wird, vielleicht noch mit kritischem Timing, wird das lustig. Zum Beispiel verhindern USB-seriell-Wandler oft durch internes Puffern erfolgreich Bitbanging.
Versuche erstmal die Hardware-Parameter der Schnittstelle herauszufinden, so richtig auf die harte Tour mit Oszi oder Datenlogger: Baudrate, Datenbits, Stoppbits, Handshakeleitungen, Datenprotokoll. Dann kannst Du Dir Gedanken machen, wie Du die Serielle daraufhin neu programmierst. Aber die TTalk einfach "umzuschreiben" wird unter einem modernen OS nicht gehen.
Damals wurde auf die Serielle per Register zugegriffen, sprich da wurden an bestimmte Speicheradressen bestimmte Werte geschrieben um sie zu aktivieren und Daten zu senden, und aus anderen Adressen gelesen um die Daten abzufragen. Das wurde unter Windows95 dann teilweise, unter Windows98 völlig unterbunden. Ist auch sinnvoll, weil eine Serielle heutzutage eben nicht mehr ein adressierbarer Steckplatz auf einer ISA-Karte ist, sondern auch ein USB-seriell-Wandler sein kann. Das Ansprechen erfolgt über Treiber.
Ergo musst Du die Funktionen der Ttalk mit modernen Zugriffsmethoden nachbauen. Entweder über das erwähnte Synase oder über die serial.pp, die etwas einfacher zu handhaben ist und eigentlich auch alles kann. Wenn da allerdings Bitbanging betrieben wird, vielleicht noch mit kritischem Timing, wird das lustig. Zum Beispiel verhindern USB-seriell-Wandler oft durch internes Puffern erfolgreich Bitbanging.
Versuche erstmal die Hardware-Parameter der Schnittstelle herauszufinden, so richtig auf die harte Tour mit Oszi oder Datenlogger: Baudrate, Datenbits, Stoppbits, Handshakeleitungen, Datenprotokoll. Dann kannst Du Dir Gedanken machen, wie Du die Serielle daraufhin neu programmierst. Aber die TTalk einfach "umzuschreiben" wird unter einem modernen OS nicht gehen.
-
- Beiträge: 10
- Registriert: So 18. Jun 2017, 18:36
Re: Pakete für Turbo-Pascal: Turbo Professional und Turbo Ta
Timm, danke für die Info.
Da werden noch ganz andere Probleme auftreten, nicht zu vergessen sind die 200kB ASM-Code. Mir ist klar, dass all die Low-Level-Sachen nicht einfach so auf einem modernen System laufen. Vorerst möchte ich einfach mal den aktuellen Code compilieren, um zu schauen, ob alles noch so tut wie es soll - alter Code mit alter Maschine, jedoch neu kompiliert.
Ich steh immer noch mit dem Speicherproblem an. Ich hab nun mit der Kommandozeile, ohne IDE, einiges mehr kompilieren können, aber nun scheiterts dann beim Programm selbst. D.h. alle Abhängigkeiten dürften schon erledigt sein.
Hat hier wer einen Tipp?
LG, Karl
Da werden noch ganz andere Probleme auftreten, nicht zu vergessen sind die 200kB ASM-Code. Mir ist klar, dass all die Low-Level-Sachen nicht einfach so auf einem modernen System laufen. Vorerst möchte ich einfach mal den aktuellen Code compilieren, um zu schauen, ob alles noch so tut wie es soll - alter Code mit alter Maschine, jedoch neu kompiliert.
Ich steh immer noch mit dem Speicherproblem an. Ich hab nun mit der Kommandozeile, ohne IDE, einiges mehr kompilieren können, aber nun scheiterts dann beim Programm selbst. D.h. alle Abhängigkeiten dürften schon erledigt sein.
Hat hier wer einen Tipp?
LG, Karl
-
- Beiträge: 6900
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: Pakete für Turbo-Pascal: Turbo Professional und Turbo Ta
Nein nur Object, diese gehen statisch und dynamisch, wie bei FPC.Kann Turbo Pascal 6 überhaupt Klassen verwenden?
Das Problem war, etwas in der Unit CRT, ohne Unit CRT, liefen die Programme auch auf schnelleren PCs.Borland Pascal musste man übrigens patchen, um es auf modernen Rechnern laufen lassen zu können (siehe Anhang). Wie es bei Turbo 6 ist, weiß ich nicht
Ob das TP unterstützte, ich glaube kaum.Ansonsten war damals der Trick, alles mögliche in den EM/XMS-Speicher auszulagern (LOADHI o.ä. - ich hab das alles vergessen).
Dies war dazumal sehr viel,.585kByte sind noch frei vor dem Start von turbo.exe
Dies sollte eigentlich keine Hürde sein, da eine *.pas dazumal nur max 64KB gross sein konnte.Die Datei hat 1000 Zeilen, und die Prozedur, in der der Fehler auftritt ca. 680 Zeilen.
Einst darfst du nicht vergessen, TP lief im Real-Modus mit max 640KB, BP lief aber im Protect-Modus.Mein DOS6.22-VM hat 522KB frei, und da läuft Borland Pascal 7 einwandfrei.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot
-
- Beiträge: 463
- Registriert: Do 8. Jun 2017, 18:21
- OS, Lazarus, FPC: Windows 10 64bit, Lazarus 3.6, FPC 3.2.2
- CPU-Target: 64Bit
- Wohnort: Wien
Re: Pakete für Turbo-Pascal: Turbo Professional und Turbo Ta
Ich fürchte, dass es praktisch überhaupt nicht möglich sein wird, unter einem neueren Windows aus einem DOS-Programm heraus auf serielle Schnittstellen zuzugreifen, auch wenn du alle anderen Probleme erfolgreich meisterst. Du kommst aus der DOS Umgebung an die Windows Treiber einfach nicht heran. Und wenn du es trotzdem versuchen willst, würde ich an deiner Stelle als Erstes schauen, ob du dieses Problem irgendwie gelöst bekommst, bevor du dich deinem Code widmest, sonst machst du viele leere Kilometer.
Ich würde an deiner Stelle gleich versuchen, den Code auf Windows zu portieren, beim Pascal Code selbst ändert sich ja nicht viel. Ist natürlich eine Mords Arbeit, aber in Summe wahrscheinlich weniger, als das zuerst unter Turbo Pascal in Gang zu bekommen und dann erst recht die Umstellung machen zu müssen.
Ich würde an deiner Stelle gleich versuchen, den Code auf Windows zu portieren, beim Pascal Code selbst ändert sich ja nicht viel. Ist natürlich eine Mords Arbeit, aber in Summe wahrscheinlich weniger, als das zuerst unter Turbo Pascal in Gang zu bekommen und dann erst recht die Umstellung machen zu müssen.
-
- Beiträge: 1224
- Registriert: So 20. Mär 2016, 22:14
- OS, Lazarus, FPC: Win7-64bit Laz1.9.0 FPC3.1.1 für Win, RPi, AVR embedded
- CPU-Target: Raspberry Pi 3
Re: Pakete für Turbo-Pascal: Turbo Professional und Turbo Ta
Da fürchtest Du zurecht.braunbär hat geschrieben:Ich fürchte, dass es praktisch überhaupt nicht möglich sein wird, unter einem neueren Windows aus einem DOS-Programm heraus auf serielle Schnittstellen zuzugreifen...
Ich kenne einige Labore, in denen noch Win3.11 läuft, weil die Software eben auf diese Weise auf die Ports zugreift (meist Parallelport), und ein Perkin Elmer HPLC oder Massenspektrometer für 300.000 Eier schmeisst man nicht weg, nur weil das Windows nicht mehr aktuell ist.

-
- Beiträge: 6900
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: Pakete für Turbo-Pascal: Turbo Professional und Turbo Ta
Vielleicht hat man eine Chance, wen man das DOS-Programm in der Virtual-Box laufen lässt. Dort kann man Com-Port durchreichen. MS-DOS erkennt sie auf jeden Fall.Ich fürchte, dass es praktisch überhaupt nicht möglich sein wird, unter einem neueren Windows aus einem DOS-Programm heraus auf serielle Schnittstellen zuzugreifen...
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot
-
- Beiträge: 463
- Registriert: Do 8. Jun 2017, 18:21
- OS, Lazarus, FPC: Windows 10 64bit, Lazarus 3.6, FPC 3.2.2
- CPU-Target: 64Bit
- Wohnort: Wien
Re: Pakete für Turbo-Pascal: Turbo Professional und Turbo Ta
Vielleicht geht das in der Dosbox irgend wie, hab mich mit dem Ding noch nicht ernsthaft beschäftigt. Mir ist es aus der Dosbox heraus nicht einmal gelungen, einen Windows Drucker anzusteuern, hab darauf allerdings nicht sehr viel Zeit investiert. Aber wie gesagt, ich würde das auf jeden Fall als erstes sicherstellen, bevor du dir eine Menge Arbeit umsonst machst.
-
- Beiträge: 6900
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: Pakete für Turbo-Pascal: Turbo Professional und Turbo Ta
Interessant wäre mal zu wissen, was das überhaupt für ein Gerät am COM-Port ist.
Wen es etwas ist, was der Norm entspricht, dann sollte mit Lazarus problemlos ein Zugriff sein.
Die modernen OS kümmern sich um Puffer, etc.
Unter DOS musste man sich um alles selbst kümmern.
Wen es etwas ist, was der Norm entspricht, dann sollte mit Lazarus problemlos ein Zugriff sein.
Die modernen OS kümmern sich um Puffer, etc.
Unter DOS musste man sich um alles selbst kümmern.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot
- af0815
- Lazarusforum e. V.
- Beiträge: 6766
- Registriert: So 7. Jan 2007, 10:20
- OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
- CPU-Target: 32Bit (64Bit)
- Wohnort: Burgenland
- Kontaktdaten:
Re: Pakete für Turbo-Pascal: Turbo Professional und Turbo Ta
Was auch ein Unterschied ist, ob man einen Emulator oder einen virtualizer verwendet. QEMU kann IMHO auch eine x86 CPU emulieren
Das ist auch noch einen Versuch Wert, wenn man mit dem Rücken zur Wand steht 
Andreas
Code: Alles auswählen
Zitat: The virtual x86 CPU supports 16 bit and 32 bit addressing with segmentation.
....
For system emulation, the following hardware targets are supported:
PC (x86 or x86_64 processor)
ISA PC (old style PC without PCI bus)
.....

Andreas
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
-
- Beiträge: 6900
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: Pakete für Turbo-Pascal: Turbo Professional und Turbo Ta
Ich habe gerade einen Versuch gemacht.Vielleicht hat man eine Chance, wen man das DOS-Programm in der Virtual-Box laufen lässt.
Eine Uralte-Serial-Maus an einen USB-Com-Port. Von Linux selbst wird sie nicht erkannt.
Aber das WinXP mit durchgeschleiften Com-Port in der VB hat die Maus erkannt. Ich denke, dies sagt schon recht viel.
Man muss dafür aber die Marktintegration deaktivieren.
Auf diese Methode könnten 2 Nutzer den PC gleichzeigt nutzen.
Der einte spielt Solitär in der VB und der andere bedient Linux ganz normal.

Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot
-
- Beiträge: 10
- Registriert: So 18. Jun 2017, 18:36
Re: Pakete für Turbo-Pascal: Turbo Professional und Turbo Ta
Die Lösung bez. Speicher war nun tpcx.exe anstatt tpc.exe zu verwenden. Dies ist der Kommandozeilen-Kompiler mit Extended Memory, siehe http://computer-programming-forum.com/2 ... 291a18.htm
Und es wurde erfolgreich gebaut, das Programm! Ein großer Schritt ist also nun gemacht
Bezüglich direktem Speicherzugriff: DLPORTIO
Wir haben das damals in der Schule (ca. 2004) auf Win2000 verwendet, um direkt den RS232-Chip anzusteuern. War zwar nicht lustig, aber lehrreich, und interessant, da man von der normalen PC-Umgebung auf einmal mit Registern zu tun hat, wie man es sonst nur von Mikrocontrollern kennt.
https://www.entwickler-ecke.de/topic_Dl ... 132,0.html
Ob das heute auch noch so geht, weiß ich nicht.
Ich halte euch am Laufenden.
Und es wurde erfolgreich gebaut, das Programm! Ein großer Schritt ist also nun gemacht

Bezüglich direktem Speicherzugriff: DLPORTIO
Wir haben das damals in der Schule (ca. 2004) auf Win2000 verwendet, um direkt den RS232-Chip anzusteuern. War zwar nicht lustig, aber lehrreich, und interessant, da man von der normalen PC-Umgebung auf einmal mit Registern zu tun hat, wie man es sonst nur von Mikrocontrollern kennt.
https://www.entwickler-ecke.de/topic_Dl ... 132,0.html
Ob das heute auch noch so geht, weiß ich nicht.
Ich halte euch am Laufenden.
- Dateianhänge
-
- 2017-06-23_001.png (6.69 KiB) 2933 mal betrachtet