0. Inhalt                                                                         1
_______________________________________________________

1. Einfhrung

    1.1  ber Megamax Modula                                         1 -  1
    1.2  ber dieses Handbuch                                               2
    1.3  Kurze Modula-Bibliographie                                          3
         Niklaus Wirth: Programmieren in Modula-2                          3
         Dal Cin/Lutz/Risse: Programmierung in Modula-2                   3
         Richard Gleaves: Modula-2 fr Pascal-Programmierer              4
         Drholt, Schnur: Atari ST Modula-2 Programmierhandbuch         4
         Dieter & Jrgen Gei: Softwareentwicklung auf dem Atari ST      5
         Dieter & Jrgen Gei: Vom Anfnger zum GEM-Profi               5
         Jankowski, Rabich, Reschke: Das Atari-ST Profibuch               5
    1.4  Megamax Modula: das Konzept                                      6
         Implementations- und Definitionsmodule                             6
         "Loadtime Linking"                                                   7
         Benutzung des Linkers                                               8
    1.5  Unser Service                                                       9
         Megamax Modula Exchange - MeMoX                               9
         Mailbox                                                             10
         Soforthilfe bei Fehlern                                              11
         Quelltexte der Bibliothek                                           12
         Assembler fr 68020/30 und 68881/2                            12
         Portable Bibliotheken fr den Atari ST / TT                       13
         ATD - Abstrakte Datentypen                                       14
         Einbindung von Funktionen der Sprache C                          14
    1.6  Anmerkungen zu den Lizenzvereinbarungen                        15
         Software                                                           15
         Handbuch                                                           15
         Haftungsausschlu                                                  16

2. Bedienung des Megamax Modula-Systems

    2.1  Los geht's - Installieren und Ausprobieren                     2 -  1
         Voraussetzungen                                                    1
         Die Modula-Disketten                                                2
         Installation ohne Festplatte                                          4
         Installation mit Festplatte                                            5
         Speicherplatzmangel?                                                6
         Mehr Geschwindigkeit...                                              7
         Namenskonventionen                                                 8
         Mathe-Koprozessor (FPU, SFP004, Atari TT                       8
         Ein erstes Programm                                                9
    2.2 Shell                                                            2 - 15
         Aufruf der Shell                                                    15
         Das Shell-Desktop                                                 15
         Ausfhren von Programmen und anderen Dateien                  18
         Ausfhren speziell von Code-Dateien (Programme, Module)        19
         Programmaufruf und -abbruch bei gelinkten Programmen          22
0. Inhalt                                                                         2
_______________________________________________________


         Das Binden der Module                                             22
         Resident-Laden von Code-Dateien (Programme, Module)           25
         Laden gelinkter Programme                                        26
         Menzeile der Shell                                                28
         Shell-Parameter                                                    29
         Umgebungsinformationen                                           30
         Tasten-Funktionen                                                  31
         Batch-Dateien                                                      32
         Suchpfade und Pfadlisten                                           36
         Umgang mit mehreren Projekten                                   39
         Fehlermeldungen der Shell                                          41
    2.3 Editor                                                          2 - 43
         Einfhrung                                                          43
         Wahl des Editors                                                   43
         Vorbereitungen und Parameter                                     45
         Aufruf des Editors                                                 46
    2.4 Compiler                                                       2 - 47
         Aufruf des Compilers                                              47
         Die erzeugten Dateien                                              48
         bersetzungsfehler                                                 48
         Parameter                                                          49
         Definitions-Codes: Bibliothek und Komprimierung                   50
         Dekomprimieren der Dateien in der Library                        51
         Protokoll                                                            51
    2.5 Debugger                                                       2 - 53
         bersetzen im Debug-Modus                                       53
         Ausfhren im Debug-Modus                                        54
         Scanner - Suchen der Fehlerposition                              55
         Manuelles Scannen                                                 56
    2.6 Linker                                                          2 - 59
         Funktion                                                            59
         Bedienung                                                          59
         Fehlermeldungen                                                    60
         Parameter                                                          61
         Treiber- bzw. Konfigurationsmodule                                61
         Komprimierung (Optimierung) des erzeugten Programms          63
         Stack-Gre                                                       65
         Binden von Accessory-Programmen                                65
         Arbeitsweise des Linkers                                           65
    2.7 Make und ModRef                                              2 - 69
         Prinzip eines Make                                                 69
         Arbeitsweise von Make                                             69
         Erzeugung einer Make-Datei (ModRef)                             71
         Anwendung von Make                                              72
         Alle Module bersetzen (Build)                                     73
         Fehlermeldungen des Make                                         73
         Syntax der Make-Datei                                             74
0. Inhalt                                                                         3
_______________________________________________________


3. Programmieren in Megamax Modula-2

    3.1  Sprachumfang                                                  3 -  1
         Wirthscher Standard (PIM-Standard)                               1
         ISO-Standard                                                        2
         Standard gegen Erweiterungen                                      3
         Die Megamax-Implementation: Einschrnkungen und Erweiterungen 4
         Standardprozeduren                                                 5
         Standardtypen: Gre und Wertebereich                            8
         Standardkonstanten                                                  8
         Typen CARDINAL und INTEGER                                      8
         Typen SHORTCARD und SHORTINT                                 9
         Typen LONGCARD und LONGINT                                    9
         Typen REAL und LONGREAL                                        10
         Funktionen SHORT und LONG                                      11
         Kompatibilitt von ADDRESS, POINTER, LONGCARD, Opaque      11
         Angabe von Speichergren                                        11
         Funktionen MIN und MAX                                           12
         Exportlisten in Definitionsmodulen                                  12
         Syntax eines Variant-Records                                      12
         Unterbereichs-Deklaration                                          13
         FORWARD-Deklaration                                             13
         Externe Variable                                                   13
         Funktions-Prozeduren                                              14
         Lokale Prozeduren als aktuelle Parameter                         15
         Zuweisungen von LONGCARD/-INT auf SHORTCARD/-INT        16
         Bedingungen fr Laufvariable von FOR-Schleifen                   16
         SET-Konstrukturen                                                 17
         Mehrdimensionale offene Felder                                    18
         Gre von INTEGER und CARDINAL                                18
         Datengre bei Open Arrays                                       18
         Aggregate (value constructor)                                      19
         Verkettung von String-Konstanten                                 20
         Funktion LENGTH                                                   21
         Funktionen FLOAT und LFLOAT                                    21
         Funktion INT                                                        21
         Kompatibilitt bei Open Arrays                                     22
         Kompatibilitt bei String-Zuweisungen                              22
         REF- (CONST-) Parameter                                        22
    3.2 Interne Datenformate                                          3 - 25
         Ablage von Strukturen im Speicher                                25
         SETs und BITSET                                                  25
         LONG-Werte                                                       25
         Packen von BYTE-Daten                                            26
    3.3 Das SYSTEM-Modul                                           3 - 27
         Typ ADDRESS                                                      28
         Typen LONGWORD, WORD, BYTE und LOC                        28
0. Inhalt                                                                         4
_______________________________________________________


         Funktionen ADR und TSIZE                                         29
         Konstante CompilerVersion und CompilerSubVersion               29
         Type BITNUM und Funktionen SHIFT und ROTATE                 29
         Funktion CAST                                                     30
         Funktion CADR                                                     31
         Prozeduren CODE, LOAD und STORE                              31
         Prozeduren CALLSYS und CALLEXT                               32
         Prozeduren NEWPROCESS, TRANSFER und LISTEN               33
         Prozedur IOTRANSFER                                             34
         Prozedur IOCALL                                                   34
    3.4 Compilerdirektiven                                              3 - 36
         Syntax einer Direktive in der Compiler-Parameter-Box            36
         Syntax einer Direktive im Programmtext                           37
         Gro-/Kleinschreibung (Case Sensitivity)                           37
         Bereichsprfungen (Range Checking)                               38
         Stackplatz-Prfung (S)                                             38
         Testhilfen (Debugging, E)                                           39
         Lokale Prozeduren als aktuelle Parameter (H)                     40
         Erweiterte Syntax (A)                                              40
         Zuweisung LONGCARD/-INT auf SHORTCARD/-INT (K)           40
         Automatische Register-Optimierung bei FOR-Schleifen (J)         40
         Optimierte Rckgabe von Funktionsergebnissen im Register (Z)   41
         SET-Format (U)                                                    41
         Register-Variable (Reg)                                            42
         Mathe-Koprozessor (FPU)                                          43
         Ausgaben des Compilers (Quiet Compilation)                       44
         Zugriff auf lokale Variable (Linking)                                45
         Wahl der Namensendung (Extension)                               45
         Einschieben externer Textfiles (Include File)                       46
         Bibliotheksvorgabe (Use Library)                                   47
         Protokoll mit Statistik(V, P)                                       47
         Bedingte Compilierung (?)                                          47
         System-Module mit "shared data" (Y)                             48
         Entfernen nicht bentigter Module beim optimierten Linken (B)    49
         Compiler-Warnungen (W)                                          49
         bersicht: Compilerdirektiven                                       50

4. Der 68000 Assembler

    4.1  Grundlagen und Syntax                                         4 -  1
         Assembler-Anweisungen in Modula-Programmen                    1
         Aufbau von Assembleranweisungen                                  2
         Befehlscodes und Adressierungsarten                               2
         Label (Marken)                                                      3
         Relative Sprnge (Bcc & BSR)                                       4
    4.2 Einfache Assembler-Anwendungen                                   5
         Belegung der CPU-Register                                          5
0. Inhalt                                                                         5
_______________________________________________________


         Zugriff auf globale Variable                                          5
         Zugriff auf lokale Variable                                           7
    4.3 Assembler fr Experten                                        4 -  8
         Pseudo-Opcodes                                                     8
         Belegung der CPU-Register                                          9
         Zugriff auf Modula-Konstanten                                     10
         Zugriff auf globale Variable. speziell ARRAYs                      11
         Zugriff auf lokale Variable                                         11
         Fehlerprfungen vom Assembler                                    13
         Aufruf globaler Prozeduren, Parameterbergabe                   13
         Aufruf lokaler Prozeduren                                          15
         bernahme von Parametern                                        16

5. Modulbibliothek

    5.1  Allgemeines zur Bibliothek                                     5 -  1
         Funktionsbersicht                                                   1
         Vorhandene Module                                                  2
         Allgemeiner Hinweis - Sys-Funktionen                               6
         bernahme (Portierung) fremder Modula-2 Programme             7
             Strings                                                          7
             Ein-/Ausgabe                                                    8
         Hinweise zu den Quelltexten...                                     10
           ...MM2Shell                                                      10
           ...GEMError & SimpleError                                      11
           ...MOSConfig                                                     11
         Bedienung der Eingabefunktionen                                   11
         Eingabeformate bei Convert & StrConv                            12
         Hinweise zu GEMDOSIO und TOSIO                               12
         Hinweise zu ALLOCATE                                            12
         Hinweise zu AES-/VDI-Funktionen (FormAlert, ...Mouse)          13
         Der richtige Gebrauch der UpdateWindow-Funktion...              13
           ...bei der Accessory-Initialisierung                               13
           ...bei Timer-Events mit GEMDOS-Aufrufen                      13
         Hinweise zur Benutzung der FPU in Accessories                   14
    5.2 Programme, Module und Prozesse                             5 - 15
         Das Modulkonzept                                                  15
         Vom Modul zum gelinkten Programm                               16
         Prozesse                                                           18
         Prozekontrolle                                                     22
         Prozeinformationen                                                23
    5.3 Laufzeitfehler-Behandlung                                      5 - 25
         Was sind Laufzeitfehler?                                          25
         Fehlergruppen                                                      26
         Allgemeine Laufzeitfehler                                           27
         Dateifehler                                                         30
0. Inhalt                                                                         6
_______________________________________________________


         Fehlerbehandlung mit dem Modul EasyExceptions                   31
         Accessories                                                        32
    5.4 Dateisystem                                                    5 - 33
         Dateimodi (Binr/Text)                                             33
         ffnen einer Datei                                                 34
         Ein-/Ausgabe von Daten                                           35
         Dateiende-Behandlung                                              36
         Diverse Dateifunktionen (Modul 'Files')                             40
         Fehlerbehandlung im Dateisystem                                   41
         Unterschiede zwischen Binr- und Textmodus                     42
         Modul 'InOut'                                                       43
         Konfiguration eigener Unittreiber                                   44
    5.5 Grafikdarstellung im Atari ST                                  5 - 45
         Einfhrung                                                          45
    5.6 Line A - Routinen                                                  47
         Der Fontheader                                                     47
         Die Line A - Variablen                                             49
         Der Deskriptor fr BitBlockTransfer                                52
    5.7 GEM                                                                54
         VDI                                                                 54
         AES                                                                55
         Mega-GEM                                                         67
         Ganz unten...                                                       68

Anhang

    A.1  Fehlermeldungen des Compilers
    A.2 Fehlermeldungen zur Laufzeit und des Loaders
    A.3 Interne Datenformate
    A.4 Registerbelegung zur Laufzeit
    A.5 bersicht Compileroptionen
    A.6 Backus-Naur-Notation
    A.7 Modula-Syntaxdiagramme
    A.8 Modula-Syntax in Backus-Naur-Notation
    A.9 Aufbau der Codemodule
    A.10Begriffserluterungen
    A.11 Anpassen alter Megamax-Programme (Systemversion 1)

    B.   Texte der Definitionsmodule

    C.1  Dokumentation zum Editor GEP ED
                                         _
    C.2 Dokumentation zum Editor GME
    C.3 Dokumentation zum Resource Construction Program

    D.  bersicht aller Bezeichner der Bibliothek

    E.   Index
