============================================================================= Dokumentation zu ModToPas vom 17.2.90 Markus Uhlendahl, Vorm Burgtor 16, D-4408 Dülmen, Tel.: 02594/81540 ============================================================================= INHALTSVERZEICHNIS I Überblick II Bedienung III techn. Daten/Einschränkungen IV bekannte Fehler V geänderte Prozeduren I Überblick Turbo Pascal Programme für MS-DOS Rechner entwickeln ? Kein Problem wenn man M2Amiga Modula II von A+L AG und ModToPas hat. Mit ModToPas kann man Modula II Programme, die mit den mitgelieferten Turbo Pascal Moduln und einigen wenigen Standard Moduln entwickelt wurden, ohne größere Probleme in Turbo Pascal Programme konvertieren. Wichtig ist dabei, daß die Programmierung in Modula II eingeschränkt ist, denn nicht alle Modula II Elemente lassen sich in Turbo Pascal konvertieren. Ich setze vorraus, daß den Benutzern mindestens Turbo Pascal V3.0 bekannt ist, deshalb erkläre ich die Funktionsweisen der Turbo Pascal Prozeduren nicht, es sein denn sie wurden geändert. Die Programme Damen und KonTest sind Programme, die sowohl auf dem Amiga als auch auf einem MS-DOS Rechner laufen. Damen ist eine Lösung des n-Damen Problems, KonTest demonstriert die Be- nutzung der Turbo Pascal Module. II Bedienung Der Modula II Quelltext muß mit .mod enden. Der erzeugte Pascal Quelltext erhält die Endung .pas . Aufruf vom CLI aus: ModToPas [Programmname[.mod]] Beim Aufruf von ModToPas kann auf .mod verzichtet werden. ModToPas bildet automatisch den korrekten Namen. Aufruf von der Workbench aus: 1. ModToPas durch Doppelklick starten und Filename(n) angeben 2. zu konvertierendes Programm anklicken, SHIFT-Taste drücken und ModToPas durch Doppelklick starten III techn. Daten/Einschränkungen 1. In der jetzigen Version wird das erzeugte File NICHT auf eine MS-Dos Diskette geschrieben. Das erzeugte File muß zusätzlich mit einem Programm in das MS-Dos Format überführt werden. Ich empfehle Dos2Dos. PS: Wer kann mir helfen, so etwas in ModToPas einzufügen oder Tips geben ? Bitte schreiben. (Adresse im Dokumentkopf) 2. Es dürfen maximal 50 Prozeduren davon maximal 10 Funktionen ineinander verschachtelt werden. 3. Es dürfen maximal 32768 Schleifen, IFs ineinander verschachtelt werden. 4. FOR Schleifen dürfen nur mit den Schrittweiten 1 oder -1 verwendet werden. Dies ist eine Einschränkung von Turbo Pascal. 6. Es dürfen nur die Standardprozeduren von Modula II benutzt werden, die es auch in Turbo Pascal gibt. 7. Folgende Prozeduren dürfen aus den Bibliotheksmoduln benutzt werden: Terminal: Write,WriteLn,WriteString InOut: Write,WriteLn,WriteString,WriteInt,Read,ReadString,ReadInt RealInOut: WriteReal,ReadReal 8. Die Standarddatentypen LONGCARD,LONGINT,LONGREAL,CARDINAL sind verboten. 9. Bei Strings sollte nicht auf das Element mit dem Index 0 zugegriffen werden. Siehe Turbo Pascal. 10. ELSIF ist verboten. Siehe Turbo Pascal. 11. Es dürfen keine offene Felder (OPEN ARRAYs) verwendet werden. 12. Es können keine DEFINITION MODULE, IMPLEMENTATION MODULE oder lokale Module verwendet werden. 13. Bezeichner dürfen maximal 80 Zeichen lang sein. 14. Das erzeugte Programm darf maximal 30000 Bytes lang sein. 15. Es müssen mindestens 100 KByte Speicher zur Verfügung stehen. Davon mindestens 30 KByte Chipmemory. IV bekannte Fehler - die Schrittweite -1 in FOR-Schleifen wird unkorrekt übersetzt. (statt DOWNTO wird TO erzeugt) - CASE mit ELSE wird unkorrekt übersetzt. (statt ELSE wird END ELSE BEGIN erzeugt) - Unterbereichstypen werden unkorrekt übersetzt. (statt z.B. -255..0 wird [-255..0] übersetzt) - TPMath.Round funktioniert in Modula II nicht. Kein Grund zur Unruhe. Diese Fehler schränken die Programmierung kaum ein. V geändert Prozeduren - TPSystem.keypressed wartet nicht auf Tastendruck sondern auf den linken Mausknopf.