Announcement

Collapse
No announcement yet.

Turbo-Pascal -->> Delphi (Echtzeit Modellbahnsteuerung)

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Turbo-Pascal -->> Delphi (Echtzeit Modellbahnsteuerung)

    Ich bin seit langer Zeit Modelleisenbahner und habe eine Eichzeit-Steuerung mit Turbo-Pascal programmiert.
    Bitte nicht lachen ... als ich damit vor 14 Jahren anfing gab es noch kein Delphi !!.

    Das System läuft jetzt unter Win98.

    Das Programm-System besteht aus 2 Paketen:

    - Turbo-Pascal 6.0 mit einem Real-Time Kernel von On-Time: dieses Programm wird von der Autoexec.bat im Real-Mode resident geladen (ich nenne es mal meinen DOS-Teil); dieser Teil ist der Real-Time kritische, der auch die HW Schnittstelle bedient über memory mapped i/o.

    - Turbo-Pascal für Windows: für die Steuerprogramme und das grafische Stellpult z.B. zu Stellen von Fahrstraßen und Anzeige wo welche Züge fahren (ermittelt vom DOS-Teil zusammen mit elektronischen Besetztmeldern).

    Die beiden Programme unterhalten sich miteinander über interrupt gesteuerte inter-process-communication IPC.

    Das System funktioniert gut (hat inzwischen 10000 lines-of-code), ich erweitere es ständig, aber ich möchte gerne zu Delphi umsteigen. Hat jemand ähnliche Erfahrungen, der mir Tips geben könnte?

    Danke im vorraus Bernd.

  • #2
    <p class=MsoNormal>Hallo,</p>

    <p class=MsoNormal>den Windows Teil schreibst Du mal schnell neu <b>* grins *</b>
    </p>

    <p class=MsoNormal>Du kannst über ASM in Delphi direkt auf den Speicher
    zugreifen, zumindest noch in Win98.</p>

    <p class=MsoNormal>Ab NT4 geht das wegen des HAL nicht mehr so einfach. Hier
    müsstest du eine neue IO Hardware mit entsprechenden Treibern haben. Das
    einfachste wäre demnach noch die vorhandene Hardware mit DOS Realtime-Engine zu
    behalten und die Infos über Delphi/ASM aus dem Speicher/ in den Speicher zu
    steuern. Ich habe mal ein Projekt entwickelt (Win98), bei welchem ich eine
    Multi I/O 16BIT Karte eingesetzt habe. Diese habe ich über ASM in Delphi direkt
    bedient. (Kleines Sourcecode Beispiel kann ich bei Bedarf zukommen lassen).</p>

    <p class=MsoNormal>Nachdem das Projekt unter W2K laufen musste, funktionierte
    der ASM Zugriff natürlich nicht mehr (Schutzverletzung durch Direktzugriff auf
    Port!). Hierfür gibt es aber auch eine Möglichkeit. Es gibt eine Software,
    welche einen Direktzugriff für „NT“ umsetzt, OHNE, dass man alles neu
    Programmieren muss und OHNE, dass Treiber für I/O Hardware vorhanden sein muss!
    (Ist ein Freeware Programm, kann ich Dir auch zukommen lassen).</p>

    <p class=MsoNormal>Unter „NT“ kannst Du natürlich deinen Realtime-DOS Modus
    vergessen, Du müsstest dann die vorhandene I/O vom Programm aus bedienen.
    Dürfte aber angesichts schnellerer CPU’s nicht das Problem sein. Du müsstest
    die Hardware entsprechend schnell genug abfragen, wenn die Signale an den
    Eingängen nicht zwischengespeichert anliegen! Da aber mein alter C64 (1MHz!) schon
    meine damalige Eisenbahnanlage gesteuert hat, sollte das mit einem 1GHz Teil
    doch leicht gehen ;-)</p>

    <p class=MsoNormal><![if !supportEmptyParas]>&nbsp;<![endif]><o></o></p>

    <p class=MsoNormal>Michael</p&gt

    Comment


    • #3
      Hi Michael, danke für deine schnelle Antwort. Ich möchte schon gerne den DOS Teil behalten. Die Idee über Delphi/ASM damit zu kommunizieren scheint vielversprechend. Wenn du mir einen Beispiel Code schicken könntest wäre das toll. Meine e-mail adresse ist
      .....

      danke :-
      Zuletzt editiert von Bernd Koesters; 14.07.2007, 18:53.

      Comment

      Working...
      X