home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaUtilCD2.iso / Programming / Misc / MODULAV2GERMAN.DMS / in.adf / LiesMich < prev    next >
Encoding:
Text File  |  1988-11-01  |  4.9 KB  |  106 lines

  1. Willkommen zum Amiga Modula-2 System!                                  © 1.11.88
  2.  
  3. Sie befinden sich nun direkt im Modula-2 Editor. Um sich in diesem Text herum-
  4. zubewegen, genügt es, wenn Sie mit der Maus auf die gestrichelte Zeile (unten)
  5. fahren und links oder rechts klicken, um vor- bzw. rückwärts zu blättern. Pro-
  6. bieren Sie es gleich mal aus! Mit der rechten Maustaste können Sie den Menu-
  7. balken erscheinen lassen, über welchen Sie m2emacs auch wieder verlassen
  8. können.
  9.  
  10. Bevor Sie die beileigenden Demos ausprobieren, sollten sie M2Amiga auf
  11. Ihrem System installieren (siehe Kapitel 2 im Handbuch). Auf diese Weise
  12. können sie den m2emacs Editor verwenden um die Dokumentationstexte zu
  13. den Demos durchzulesen. Bitte lesen Sie die Dokumentationstexte durch,
  14. bevor sie die Demoprogramme aufstarten.
  15.  
  16. Änderungen gegenüber dem Handbuch
  17. _________________________________
  18.  
  19. Die Diskette enthält zwei Varianten des Compilers. M2:m2c wurde mit aus-
  20. geschalteten Bereichs-, Überlauf- und Stapelüberlaufoptionen kompiliert.
  21. Der Compiler ist deshalb nur 128kByte gross, aber sollten sie den Stapel-
  22. bereich nicht genügend gross gewählt haben, dann wird es während der
  23. Compilation zu einem Systemabsturz kommen.
  24. In der Archivdatei sicheres-m2c.zoo befindet sich eine Variante die mit
  25. eingeschalteten Optionen kompiliert wurde. Dieser Compiler ist 165kByte
  26. gross. Falls Sie über mehr als 512kByte Hauptspeicher verfügen, sollten
  27. Sie diesen Compiler verwenden. Sie können ihn mit dem auf der Demo-Diskette
  28. mitgeleiferten zoo Befehl aus dem Archiv extrahieren:
  29.  
  30.   zoo -extract sicheres-m2c
  31.   
  32.  
  33.  
  34. Das Modul Windows wurde um zwei Prozeduren erweitert:
  35.  
  36. ClearEOL(u:Window);
  37.  
  38.   Löscht alle Zeichen von der aktuellen Cursorposition bis ans Ende der Zeile.
  39.   
  40. ModifyWindow(VAR u:Window; newX,newY,newW,newH:INTEGER);
  41.  
  42.   Mit dieser Prozedur kann die Position und Grösse des Fenster verändert
  43.   werden. Für jeden der Parameter kann auch -1 eingesetzt werden, dann
  44.   bleibt der entsprechende Wert erhalten.
  45.   
  46.   Bsp: ModifyWindow(w,-1,-1,200,-1); 
  47.   
  48.   Die Breite des Fensters wird auf 200 gesetzt, Höhe und Position des Fensters
  49.   bleiben unverändert.
  50.  
  51. Das Modul Workbench ist WBArg.lock vom Typ FileLockPtr und nicht vom Typ
  52. ADDRESS (Seite 13-101, Zeile 32).
  53.  
  54. Der M2Amiga Compiler ist in der Lage, Prozeduren aus den Amiga-Libraries
  55. (z.B. Exec, Intuition) direkt aufzurufen, wobei die Parameter direkt in
  56. den Registern üebergeben werden. Manchmal muss der Compiler trotzdem einen
  57. Umweg über den Stack eingehen, nämlich wenn Parameter in Register liegen,
  58. die vom Compiler speziell behandelt werden. Dies betrifft insbesondere
  59. die Register D0 und D1.
  60.  
  61. Bsp: PROCEDURE P(data1{0B}:LONGINT; data2{2B}:LONGINT);
  62.      i,j:LONGINT;
  63.      PROCEDURE f(x:LONGINT):LONGINT;
  64.      
  65. Wird nun P(i,j) aufgerufen, dann könnte der Wert der Variablen i direkt
  66. in das Register D0 abgelegt werden. Wird aber P(i,f(j)) aufgerufen, dann 
  67. geht das nicht, denn f(j) würde sein Resultat auch im D0 Register ablegen,
  68. und somit den ersten Parameter überschreiben. Um sicher zu gehen, dass
  69. solches nicht passieren kann, wird der erste Parameter zuerst auf den
  70. Stack geladen und nach dem Auswerten aller Parameter vom Stack ins D0
  71. Register gebracht. Mit der Compileroption Z kann man den Compiler dazu
  72. bewegen, die Register direkt zu laden, ohne den Umweg über den Stack:
  73.  
  74.    (*$Z-*) P(i,j); (*$Z=*)
  75.  
  76. Diese Option sollte man nur verwenden wenn die Parameter einfache 
  77. Variablen oder Konstanten sind, und nicht wenn Ausdrücke vorkommen,
  78. also z.B. nicht für P(i,f(j)) oder P(i,i*j).
  79.  
  80.  
  81. Bekannte aber (leider) noch nicht behobene Fehler
  82. _________________________________________________
  83.  
  84. Es ist zwar nicht gut für's Image Fehler zuzugeben, doch wir sind der
  85. Meinung, dass wir Ihnen damit einen Dienst erweisen. Sie ersparen sich
  86. stundenlanges Fehlersuchen, wenn Sie die Fallen kennen und umgehen können.
  87.  
  88. - Wird der Compiler aufgestartet, wenn nur ca. 150-200 KByte Speicherplatz
  89.   vorhanden sind, dann wird er zwar vom Amiga Betriebssystem geladen, er hat
  90.   aber zuwenig Platz für seine Variablen und bleibt hängen und es gibt keine
  91.   Möglichkeit den Compiler aus dieser Situation heraus zu bringen.
  92.  
  93. - Es ist nicht möglich, einer Prozedurvariablen eine Codeprozedur zuzuweisen.
  94.   Es ist ebenfalls nicht möglich, SYSTEM.ADR auf eine Codeprozedur anzuwenden.
  95.  
  96. - Das verwenden von REsultaten einer Funktion im Index einer Feldvariable 
  97.   kann zu Fehlern führen, z.B. wird a[f(i)]:=g(j); falsch ausgewertet.
  98.  
  99. - Das Amiga-Betriebssystem weist offensichtlich einen Fehler auf. Es ist uns
  100.   schon mehrmals aufgefallen, dass, wenn wir globale Variablen im Umfang von
  101.   insgesamt mehr als 262 kByte definieren, unerklärliche und nicht wiederhol-
  102.   bare Dinge passieren. Wir konnten der Sache jeweils abhelfen, wenn wir die
  103.   grössten Variablen in den Heap legten und nur die Zeiger darauf exportierten.
  104.   Der Fehler haben wir schon an Commodore weitergeleitet und hoffen, dass er
  105.   in der nächsten Version der Workbench behoben sein wird.
  106.