Skip to content
 

Willkommen bei CCTzur Galerie

CCTeam - Home | Daniel Grün

Projekt: Pasport


Wie man ein PASCAL-Programm portiert
PASPORT erleichtert das Portieren von grafischen DOS-Pascal-Programmen auf Linux/c++/SDL. Es benoetigt die Bibliotheken SDL und SDL_gfx. Der Vorteil liegt darin, dass die PASCAL-Funktionen sowie die Programmstrukturen erhalten bleiben.
Um ein Programm zu portieren, muss
  1. die PAS-Datei in eine cpp umbenannt werden.
  2. der Header pasport.h eingebunden werden
  3. die Syntax etwas umgestellt werden
  4. das Programm mit pasport.cpp zusammen compiliert werden

Schritte 1, 2 und teilweise 3 uebernimmt das Script pasport.tcl (ohne weitere Syntax), Schritt 4 das Script c (Syntax: ./c [Programm]).
Kleine Unterschiede zwischen PASCAL und PASPORT
  1. Update
    Nach jedem Aufruf einer Grafikfunktion unter PASCAL ist die Veraenderung auf dem Bildschirm sofort sichtbar. Unter SDL ist dies allerdings ein relativ zeitaufwaendiger Prozess, der beim Bildaufbau Pixel fuer Pixel viel Zeit verschlingt. Durch Anhaengen von 0 als letzten Parameter einer Grafikfunktion wird das Bildschirmupdate verhindert. Die Funktion update() fuehrt manuell ein Bildschirmupdate durch.
  2. Initgraph
    Initgraph kann ohne weitere Parameter oder mit den Integerwerten fuer x- und y-Dimension des Bildschirms aufgerufen werden. DOS-Grafik-Treiber o.ä muessen weder mitgeliefert noch initialisiert werden.
  3. Groß- und Kleinschreibung
    PASPORT ist natuerlich im Gegensatz zu PASCAL case sensitive. Viele Funktionen sind in verschiedenen Schreibweisen vorhanden (siehe pasport.h). Alle Schreibweisen (inclusive WrITelN usw.) kann ich aber nicht beruecksichtigen.
  4. 3D-Funktionen
    Die Funktion dddpunkt bildet einen Punkt im Raum (struct dddcoord) auf dem Bildschirm ab.

Sie können sich gerne die benötigten Dateien herunterladen (8kB, incl. Konverter- und Kompilier-Script und Beispiel, als .tar.bz2-Archiv für Linux).
Hier geht's zum Autor dieses Programms.

Zuletzt geändert am 2.5.2006
Von diesem Server wird auf zahlreiche Seiten anderer Anbieter verwiesen, für die wir nicht verantwortlich sind und nicht haften.