1.1  ber Megamax Modula                                                  1 - 1
________________________________________________________


1.   Einfhrung

Das erste Kapitel dieses Handbuchs soll Ihnen einen berblick ber Megamax
Modula-2 und den Inhalt dieser Dokumentation geben. Wenn Sie Ihre System~
disketten gerade ausgepackt haben und den ersten Versuchen entgegenfiebern,
lesen Sie bitte auf jeden Fall Abschnitt 1.2. Mchten Sie sich erst ber Modula-2
und die Megamax-Implementation informieren, dann finden Sie hoffentlich das
ganze Kapitel 1 interessant.


1.1    ber Megamax Modula

Modula-2 ist eine moderne Programmiersprache, in der Prof. Niklaus Wirth
das  bewhrte  Konzept  von  Pascal  durch  leistungsfhige  Erweiterungen
ergnzte. Das Modulkonzept erlaubt die Realisierung und Pflege auch groer
SoftwareProjekte; die Untersttzung von Prozessen und die Mglichkeiten der
maschinennahen  Programmierung  erschlieen  Modula-2  neue  Anwendungs~
gebiete; eine systematische Syntax erleichtert das Erlernen der Sprache.

Megamax  Modula  ist  eine  moderne  Implementation  dieser  Sprache:  Der
schnelle Ein-Pass-Compiler ist zusammen mit Editor und Debugger ber eine
komfortable GEM-Shell zu bedienen. Er hilft dem Anfnger beim problemlosen
Einstieg in Modula-2 und bietet dem Knner ein leistungsfhiges Entwicklungs~
werkzeug. Der Compiler erfllt nicht nur den vollen Standard nach Wirth (PIM,
3.  Auflage)  sondern  verfgt  auch  schon  ber  viele  Erweiterungen  des
kommenden ISO-Standards fr Modula-2 (mehr dazu in Kap. 3.1!). Er nutzt
den Mathe-Koprozessor (FPU) sowohl im Atari ST als auch im Atari TT.

Auf berholte Konzepte, wie z.B. separate Assembler- und Linkerlufe, wurde
verzichtet.   Statt   dessen   untersttzt   Megamax   Modula   durch   echtes
Loadtime  Linking  der  Module  (wie  auf  der  Modula-Maschine  "Lilith"  von
N.  Wirth,  bzw.,  viel  besser!)  die  Benutzung  groer  Modulbibliotheken.  Die
mitgelieferte  umfangreiche  Systembibliothek  (mehr  als  110  Module)  gewhrt
bereits  umfassenden,  komfortablen  Zugriff  auf  alle  Systemfunktionen  Ihres
Atari ST/TT (Dateisystem, BIOS, GEM) und viele zustzliche Mglichkeiten.
Selbstverstndlich knnen Sie auch effiziente Accessory-Programme mit dem
optimierenden Linker erstellen.

Als Teil des Megamax Modula-Systems erhalten Sie weiterhin zwei Editoren
(einen GEM-Editor und einen sehr kompakten, schnellen Editor, der allerdings
etwas mehr Eingewhnung braucht), einen interaktiven Modula-Debugger und
ein Resource Construction Program zur Definition von Resource-Dateien fr
Ihre GEM-Anwendungen. Alle Komponenten arbeiten unter der  Kontrolle  der
GEM-Benutzeroberflche zusammen.

Eine ausfhrlichere Diskussion der - vielleicht fr Sie neuen - Konzepte der
Modularitt und des Loadtime Linking finden Sie im Kapitel 1.4.
1.2 ber dieses Handbuch                                                   1 - 2
________________________________________________________


1.2   ber dieses Handbuch

Dieses  Handbuch  erklrt  Ihnen  den  Umgang  mit  dem  Megamax  Modula-2
Entwicklungssystem. Das 1. Kapitel, in dem Sie gerade lesen, soll Ihnen einen
ersten berblick ber die Sprache Modula-2 und das Megamax-System geben.
Im 2. Kapitel finden Sie dann alle Erluterungen zur Bedienung des Systems,
die Sie zum Programmieren in Modula brauchen. Gleich zu Beginn von Kapitel 2
erfahren Sie auch, wie Sie auf dem krzesten Weg zu Ihren ersten Experimen~
ten mit Megamax Modula kommen.

Als Modula-Programmierer  wird  Sie  auerdem  das  Kapitel  5  interessieren.
Dort wird die leistungsfhige Modulbibliothek beschrieben, die Sie mit Ihrem
Megamax Modula-2 erhalten haben. Schlielich sollten Sie sich einmal Kapitel
3.1 ansehen; dort wird verraten, welche Besonderheiten die Megamax-Implemen~
tation aufweist.

Die weiteren Kapitel dieses Buchs wenden sich vor allem an den fortgeschritten~
en Anwender. Wenn Sie sich der Systemprogrammierung mit Megamax Modula
zuwenden und dazu auch den integrierten Assembler verwenden wollen, finden
Sie in Kapitel 4 Informationen ber das 'Innenleben' Ihres Modula-Systems und
den Umgang mit dem 68000 Assembler.

Im Anhang finden Sie vor allem Informationen zum Nachschlagen  -  interne
Datenformate,  Fehlermeldungen,  Compileroptionen...  Auerdem  enthlt  der
Anhang A.6 eine Erluterung der Backus-Naur-Notation. Falls Sie diese Notation
zur Beschreibung der Modula-Syntax noch nicht kennen, sollten Sie sich diese
Seite bald ansehen.

Eines  allerdings  will  dieses  Handbuch  nicht  sein:  Eine  Einfhrung  in  die
Programmiersprache Modula-2. Vielleicht haben Sie schon einiges ber Modula
gelesen?  Dann  knnen  wir  nur  noch  viel  Spa  beim  Ausprobieren  Ihrer
Kenntnisse mit dem Megamax Modula-System wnschen. Wenn Sie dagegen
noch nichts ber Modula-2 wissen, sollten Sie zustzlich zu diesem Buch ein
Modula-Lehrbuch  zur  Hand  haben.  Im  folgenden  Abschnitt  stellen  wir  eine
kleine Auswahl empfehlenswerter Bcher vor.
1.3 Kurze Modula-Biliographie                                               1 - 3
________________________________________________________


1.3   Kurze Modula-Bibliographie

Wenn Sie Modula-2 erst lernen oder als Modula-Kenner noch ein Nachschlage~
werk suchen, sollten Sie sich das  eine  oder  andere  der  folgenden  Bcher
einmal  ansehen.  Whrend  Modula-2  zunehmend  Verbreitung  findet,  wchst
auch die Auswahl an Modula-Literatur stndig - unsere Vorschlagsliste kann
daher nicht vollstndig sein.


Niklaus Wirth: Programmieren in Modula-2

Springer Verlag, 3. Auflage

Das 'offizielle' Modula-Buch vom Vater der Sprache selbst. Es besteht aus
zwei Teilen: Der erste Abschnitt ist ein Programmierkurs, der alle Modula~
Konzepte vorstellt. Der Kurs ist auf Leser mit geringen Vorkenntnissen zuge~
schnitten;  erfahrene  Pascal-Programmierer  werden  sich  in  vielen  Kapiteln
langweilen.

Daran schliet sich als zweiter Teil der 'Modula-Report' an.  Dort  soll  eine
vollstndige Definition der Sprache gegeben werden; die Darstellung ist allerdings
recht knapp und  gibt  Gelegenheit  zu  Miverstndnissen.  Zum  Nachschlagen
eignet sich die deutsche bersetzung des  Buchs  dank  ihres  umfangreichen
Stichwortverzeichnisses recht gut.

Es existiert auch noch eine vierte Auflage des Buchs, die jedoch von uns nicht
empfohlen werden kann. Sie enthlt veraltete Passagen aus der ersten Auflage
und widersprchliche Beschreibungen zwischen den beiden Teilen. Wirth  hat
hier   auerdem   einige   einschneidende   Vernderungen   an   der   Sprache
vorgenommen, die von den meisten Modula-Anbietern und -Anwendern nicht
mehr untersttzt werden. Mehr dazu im Kapitel 3.


Dal Cin/Lutz/Risse: Programmierung in Modula-2

Teubner Verlag, 2. Auflage 1986

Ein Lehrbuch, das in drei Teilen zunchst die Grundlage der Sprache vorstellt
und dann ausfhrlich auf die neuen Modula-Konzepte eingeht: modulare Program~
mierung und parallele Bearbeitung von Prozessen. Der eilige und Pascal-kundige
Leser findet zu Beginn der Grundlagen-Kapitel jeweils eine Zusammenfassung,
die die Unterschiede zu Pascal herausstellt.

Beispiele und Aufgaben helfen beim Lernen; in den spteren Kapiteln wird auch
anspruchsvolleres Wissen verstndlich dargestellt. Ein ausfhrliches Stichwort~
verzeichnis macht das Buch  auch  zu  einem  guten  Nachschlagewerk.  Einige
Minuspunkte sollen aber nicht verschwiegen werden:
1.3 Kurze Modula-Biliographie                                               1 - 4
________________________________________________________


Die Bercksichtigung der neuen Modula-Definition in der zweiten Auflage wurde
leider nicht konsequent durchgehalten - gelegentliche 'Rckflle' in den alten
Standard, speziell in den Beispielen, sorgen fr Verwirrung. Auerdem  sind
eine Reihe von Beispielen speziell auf das von den Autoren benutzte UNIX-System
zugeschnitten, ohne da das immer klar gesagt wird.


Richard Gleaves: Modula fr Pascal-Programmierer

Springer Verlag 1985

Der Titel verrt bereits, an wen sich das Buch wendet: Programmierer mit
Pascal-Erfahrung, die auf Modula-2 umsteigen wollen und sich fr nderungen
und zustzliche Mglichkeiten dieser Sprache interessieren.

Wenn Sie zu diesem Kreis gehren, ist  'Modula  fr  Pascal-Programmierer'
unbedingt empfehlenswert: Gleaves stellt die neuen Konzepte von Modula klar
heraus, ohne die Grundlagen zu wiederholen, die Ihnen von Pascal her gelufig
sind.

Einen kleinen Nachteil hat auch dieses Buch: Als einziges verschweigt es die
nderungen des Modula-Standards vllig. Wenn Sie also von R. Gleaves Modula
lernen, sehen Sie sich bitte auch das Kapitel 3.1 des Megamax-Handbuchs an.


Stefan Drholt, Jochem Schnur: Atari ST Modula-2 Programmierhandbuch

Markt & Technik Verlag 1990

Dies ist ein Modula-Buch speziell fr Atari ST-Anwender. Es umfat ca. 500
Seiten,  enthlt  zwei  Disketten  mit  Quelltexten  und  Programmen,  und  alle
Beispielprogramme  wurden  mit  dem  Megamax-Modula-System  erstellt.  Die
Beispiele sind praxisnah, es enthlt Vergleiche der wichtigsten Modula-Systeme
auf  dem  Atari  ST  und  Informationen  zum  ISO-Standard,  ein  Kapitel  zur
Assembler-Programmierung ist auch enthalten. Somit stellt dieses Werk eine
gute Ergnzung zu Megamax-Modula dar.

Es existiert noch ein weiteres Buch zu Modula-2 auf dem Atari ST. Es heit
"MODULA 2" (Heim Verlag 1990, Autor: R. Morgenstern). Wir knnen es Ihnen
nicht  so  sehr  empfehlen.  Es  bietet  trotz  seiner  Dicke  lngst  nicht  den
Informationsgehalt des vorher genannten Werkes. Lediglich die Einfhrung in
die  Grundidee  des  Programmierens  ist  hier  ausfhrlicher.  Am  besten,  sie
gehen in eine Buchhandlung und vergleichen beide Bcher kurz. Der Unter~
schied wird Ihnen ins Auge springen!
1.3 Kurze Modula-Biliographie                                               1 - 5
________________________________________________________


Dieter u. Jrgen Gei: Softwareentwicklung auf dem Atari ST

Hthig Verlag 1986

berraschung: Dies ist gar kein Modula-Buch! Wo wir aber gerade bei den Li~
teraturtips sind, wollen wir nicht versumen, auf dieses Buch hinzuweisen.

Wer in die Programmierung des GEM einen tieferen Einblick gewinnen will, fin~
det hier die vollstndige Beschreibung aller Datenstrukturen und Routinen. Bei~
spiele erleichtern das Verstndnis dieser komplexen Benutzeroberflche.

Eine Einfhrung in die GEM-Programmierung, speziell mit den Module der Me~
gamax Bibliothek, finden Sie aber auch im Kapitel 5 dieses Handbuchs.


Dieter u. Jrgen Gei: Vom Anfnger zum GEM-Profi

Hthig Verlag 1990

Dies  ist  ein  weiteres  Buch  der  Autoren,  das  noch  mehr  Einblicke  in  die
GEM-Programmierung   vermittelt.   So   wird   beispielsweise   gezeigt,   wie
"saubere", portable GEM-Programmierung aussieht, damit die Programme auch
noch auf dem GEM des IBM-PC laufen, und wie Menleisten auch in einzelnen
Fenstern  (sehr  praktisch  fr  Accessories)  dargestellt  werden  knnen.  Auf
einer Diskette werden die gezeigten Routinen als Quelltext mitgeliefert (bisher
leider nur in der Sprache C).


Jankowski, Rabich, Reschke: Das Atari-ST Profibuch

Sybex Verlag

Dies  ist  ebenfalls  kein  Modula-Buch.  Aber  was  das  vorige  Buch  fr  die
GEM-Programmierung ist, stellt dieses  fr  die  systemnahe  Programmierung
dar. Im deutschsprachigen Raum gilt es schlechthin als Referenz zu allem, das
Atari  USA  selbst  festzulegen  versumte.  Fr  Programmierer,  die  den
Durchblick  brauchen,  ist  dieses  Buch  unverzichtbar.  Es  dokumentiert  alle
Systemvariablen und Betriebssystemaufrufe ausfhrlich, bietet tiefe Einblicke in
die  Hardware  aller  Atari  ST-Modelle  und  ist  immer  up-to-date  durch
regelmige, korrigierte und erweiterte Neuauflagen. Zur Zeit umfat das Buch
ca. 1000 Seiten.
1.4 Megamax Modula: das Konzept                                          1 - 6
________________________________________________________


1.4  Megamax  Modula:  das  Konzept


Definitions- und Implementationsmodule

Wenn Sie schon mal das Listing eines Modula-Programms gesehen haben, ist
Ihnen (als Pascal-Kenner?) vielleicht aufgefallen, da das Programm im Kopf
nicht als 'PROGRAM', sondern als 'MODULE' bezeichnet wird. Das ist offenbar
noch nicht besonders revolutionr und bestimmt nicht der Grund, warum die
ganze Sprache 'Modula' heit...

Interessanter sind da schon die folgenden Zeilen des Programms: Jede Menge
'IMPORT'-Anweisungen, mit denen Objekte aus anderen Modulen dem Compiler
bekanntgemacht  werden.  Diese  anderen  Module,  die  Objekte  (Prozeduren,
Variablen, Typen, Konstanten) nach auen zur Verfgung  stellen,  gehorchen
besonderen Regeln - und die sind in Modula so  konsequent  und  funktionell
ausgefallen wie bisher in keiner anderen Programmiersprache.

Zu jedem Modul, das Objekte nach auen bereitstellt (sie 'exportiert'), gehrt
ein spezielles Definitionsmodul. Darin werden exportierte Typen, Konstanten und
Variablen deklariert; bei exportierten Prozeduren wird aber nur der Prozedurkopf
mit den Parametern angegeben. Wenn der Compiler ein Programm bersetzt,
das diese Objekte benutzt ('importiert'), kann er mit Hilfe der Informationen
aus  dem  Definitionsmodul  berprfen,  ob  die  importierten  Objekte  richtig
benutzt werden. Der Aufruf einer importierten Prozedur mit falschen Para~
metern, der in anderen Programmiersprachen mit 'behelfsmigen' Bibliotheks~
systemen zu  unerklrlichen  Fehlfunktionen  oder  Abstrzen  fhrt,  kann  also
schon beim Compilieren erkannt werden!

Das  eigentliche  Implementationsmodul,  in  dem  die  exportierten  Prozeduren
ausprogrammiert sind, braucht der Compiler dagegen nicht zu kennen, um den
korrekten Aufruf zu berprfen. Erst zur Ausfhrung des Programms wird es
bentigt. Insbesondere ist es erlaubt, die Implementation zu ndern (Korrekturen
oder Optimierungen) - solange die Definition die gleiche bleibt, braucht das
Programm,  das  so  eine  Prozedur  benutzt,  nicht  einmal  neu  bersetzt  zu
werden.
1.4 Megamax Modula: das Konzept                                          1 - 7
________________________________________________________


Loadtime Linking

Wenn Sie Ihr Programm erfolgreich bersetzt haben, erwarten die blichen
Compiler-Systeme noch, da Sie einen sogenannten Linker starten. Dieser hat
die  Aufgabe,  die  bersetzte  Version  Ihres  Programmes  mit  den  benutzten
Teilen der Bibliothek zu kombinieren. Der Linker erzeugt dann eine grere
Codedatei, die alle bentigten Komponenten zusammen enthlt; das Programm
kann dann endlich ausgefhrt werden.

Dieses gngige Verfahren hat Nachteile: Der Zyklus 'bersetzen - Linken -
Ausprobieren - Korrigieren - bersetzen ...' ist in der Entwicklungsphase recht
langwierig. Auerdem enthlt jedes lauffhige Programm groe Teile der Biblio~
thek als Kopie. Das belegt nicht nur unntig Speicherplatz auf der Diskette,
sondern fhrt vor allem dann zu Problemen, wenn  Sie  Teile  der  Bibliothek
selbst entwickelt haben und weiterhin pflegen wollen: bersetzte Programme
enthalten dann weiterhin alte (fehlerhafte?) Versionen der Bibliotheksmodule.

Megamax Modula bietet Ihnen daher ein anderes Verfahren: Erst direkt beim
Starten eines Moduls werden die zustzlich bentigten (importierten) Module
angebunden. Der Loader, der Bestandteil der Megamax-Shell ist, erledigt das
praktisch unmerklich und ohne von Ihnen weitere Angaben zu erfragen. Fr die
meisten Anwenderprogramme sind (auer dem Laden des Moduls selbst) keine
zustzlichen  Diskettenzugriffe  erforderlich,  um  die  importierten  Module  zu
laden: Alle wichtigen Ein-/Ausgabefunktionen und viele weitere Prozeduren sind
bereits als Teil der Shell im Hauptspeicher prsent und  knnen  von  Ihrem
Modul mitbenutzt werden.

Der Entwicklungszyklus besteht in der Megamax Shell also nur aus 'bersetzen
- Testen - Korrigieren'. Falls Sie Bibliotheksmodule nutzen, die nicht schon in
der Shell integriert sind, gengt dem Modula-System die IMPORT-Anweisung in
Ihrem Text, um auch diese Module beim Start des Hauptprogramms automatisch
nachzuladen und anzubinden. Und sogar wenn Sie ein Bibliotheksmodul ndern
und neu bersetzen, knnen alle Programme, die dieses  Modul  importieren,
weiterhin direkt gestartet werden - ohne neue bersetzung, ohne Linkerlauf.
1.4 Megamax Modula: das Konzept                                          1 - 8
________________________________________________________


Benutzung des Linkers

Nachdem wir eben ausfhrlich ber Linker gelstert haben, mssen wir jetzt
gestehen, da wir fr Megamax Modula auch einen haben. ber seine Handha~
bung informiert Sie der Abschnitt 2.6 (dort werden Sie sehen, da unser Lin~
ker wenigstens viel freundlicher zu bedienen ist als die meisten seiner Kolle~
gen). Wozu er da ist, wollen wir aber jetzt schon erwhnen.

Der 'heimliche' Bindevorgang beim Laden ist eine Funktion der Megamax-Shell.
Wenn ein Programm direkt vom TOS oder GEM aus gestartet werden soll,
mu es wohl oder bel alle bentigten Prozeduren komplett enthalten. Dafr
sorgt der Linker, den Sie aus der Shell aufrufen knnen.

Zur Entwicklung solcher Programme, die spter ohne Untersttzung durch die
Megamax-Umgebung laufen sollen, ist es aber trotzdem sinnvoll, die Vorteile
des 'Load Time Linking' zu nutzen. Erst das ausgetestete Programm sollten Sie
dann dem Linker vorsetzen. brigens: Auch die Megamax Modula-Shell selbst
ist auf diese Weise bersetzt und gelinkt worden.
1.5  Unser Service: MeMoX                                                 1 - 9
________________________________________________________


1.5    Unser  Service

MeMoX - Megamax Modula Exchange

Was auf dem GEPARD anfing und von Application Systems Heidelberg fr ihr
Megamax C (Laser C) aufgegriffen wurde, bieten wir nun auch fr Megamax
Modula-2: Einen preiswerten und organisierten Austausch von Modula-2 Pro~
grammen und Module unserer Megamax-Anwender. Der Gedanke dabei ist, zu
verhindern, da jedes Hilfsmodul von jedem zweiten Anwender neu erfunden
werden mu.  Statt  dessen  hat  jeder  Programmierer  die  Mglichkeit,  seine
Entwicklungen, die meist nebenbei angefallen sind, anderen zur Verfgung zu
stellen.  Auf  diese  Weise  wchst  ganz  automatisch  eine  umfangreiche  und
gnstig zu erwerbende Bibliothek mit vielen ntzlichen Funktionen heran.

Und so funktioniert's: Sie schicken uns (Application Systems) Ihre - mglichst -
fehlerfreien und ausreichend dokumentierten Module im Quelltext. Sie erlauben
uns, diese  Quellen  auf  einer  unserer  MeMoX-Disks  an  alle  bei  Application
Systems registrierten  Modula-Anwender  weiterzugeben  (vermerken  Sie  dies
bitte auch am Anfang jedes Ihrer Quelltexte) - sie sind damit nicht Public
Domain; Sie haben als Urheber immer noch die Mglichkeit, Ihre Entwicklungen
spter kommerziell zu verbreiten. Sie bernehmen dabei keinerlei Verpflichtun~
gen. Als  Dankeschn  drfen  Sie  sich  dann  eine  der  vorhandenen  MeMoX-
Disketten aussuchen (den aktuellen Bestand knnen Sie bei ASH erfragen).

Da wir auf den Quelltexten bestehen, hat zwei Grnde. Erstens sollen die
anderen Anwender die Mglichkeit haben, eventuelle Fehler zu beheben und ggf.
andere  Modifikationen  vorzunehmen.  Zweitens  kann  es  bei  einem  Update
unseres Systems dazu kommen, da sich einige Definitionen in den  Moduln
(z.B. Runtime, InOut) verndern, was dann eine Neucompilierung vieler Module,
die Sie verwenden, erfordert. Die von uns gelieferten Module des Megamax-
Systems  sind  natrlich  schon  auf  dem  neuesten  Stand,  die  MeMoX-Disks
knnen  wir  jedoch  nicht  alle  neu  zusammenstellen,  schon  weil  dann  zwei
verschiedene  Versionen  fr  Anwender  mit  dem  alten  bzw.  neuen  System
existieren mten. Haben Sie als Anwender aber die Quellen der MeMoX-Disks,
knnen Sie selbst alle erforderlichen Compilationen vornehmen.

Wenn Sie an einer oder mehreren MeMoX-Disks Interesse haben, aber erstmal
nichts bieten knnen, erhalten Sie sie fr DM 30.- das Stck. Teilen Sie uns
bei der Bestellung unbedingt Ihre Seriennummer mit!

Beispielsweise enthlt die zweite MeMoX Disk unter anderem:
    AVLTrees        einfache Verwaltung selbstausgleichender Binrbume,
    Multitasking      Modula-Prozeduren laufen im Hintergrund (ber Timer),
    Formel-Parser   Auswertung von arithmetischen Ausdrcken,
    TextEdit         automatische Verwaltung fr Texteingaben in Fenstern,
    Timer5ms        Zeitbestimmung, Stoppuhr (Auflsung: 5ms).
1.5  Unser Service: Mailbox                                                1 - 10
________________________________________________________


Mailbox

Einen  weiteren  Service  knnen  wir  Ihnen  bieten,  wenn  Sie  ber  einen
Akustik-Koppler oder ein Modem verfgen: Sie knnen prompte Hilfe direkt von
den Modula-Entwicklern erhalten. Auerdem knnen Sie ber die Mailbox nicht
nur Megamax-spezifische Neuigkeiten erfahren, sondern auch an Diskussionen
ber  zuknftige  Entwicklungen  an  Megamax-Modula  und  Modula  allgemein
teilnehmen.

Dieses Forum fr Modula-Programmierer, das wir selbst ins Leben gerufen
haben, fhren wir schon - mit wechselnden Standorten - seit dem Frhjahr
1988. Wir haben in dieser Zeit sehr oft Probleme von unseren Anwendern aus
der Welt schaffen knnen, oft wurden aufgetretene Fehler, die auch in unserer
Software  nicht  auszuschlieen  sind,  innerhalb  eines  Tages  behoben  und
rckvermittelt. Mittlerweile ist es eine solide und sehr aktive Diskussions- und
Informationsrunde geworden, an der auch andere Modula-Hersteller verschie~
dener Computer beteiligt sind. Aufgrund der Datenflut haben sich sogar einige
Modula-Interessenten wieder daraus zurckgezogen, weil sie sie nicht mehr
verfolgen oder die dabei entstehenden Telefonkosten tragen konnten.

Aus diesem Grund haben wir nun eine Alternative geschaffen. Sind Sie lediglich
an  den  besonderen  Informationen  zu  Megamax  Modula-2  interessiert  oder
wollen Sie nur die Option auf gelegentliche Hilfestellungen in Anspruch nehmen,
bieten wir Ihnen diesen Service in einer bestimmten Mailbox. Zwar mssen Sie
dann unter Umstnden hhere Kosten wegen der Ferngesprche tragen, da Sie
aber  die  Informationen  gezielt  abrufen  knnen,  minimiert  sich  damit  der
Kostenaufwand.

Wollen Sie sich dagegen auch an allgemeinen Modula-Themen beteiligen, knnen
Sie dazu verschiedene Mailboxen in ganz Europa anrufen.

So erreichen Sie nun die Mailbox mit den speziellen Megamax-Informationen
und der unverzglichen Hilfe bei Problemen: Rufen Sie die der MAUS-Mailboxen
an, deren Nummern Sie weiter unten finden. Ihr Terminal-Programm sollte auf
300, 1200 oder 2400 Baud, 1 Stop-Bit, keine Paritt, 8 Datenbits eingestellt
sein.

Wenn die Verbindung aufgebaut ist, meldet sich die Mailbox und fragt, ob Sie
eingetragener Benutzer sind. Antworten Sie mit N und tragen Sie sich dann,
wie die Box es Ihnen anbietet, als Benutzer ein. Diese Mailbox fragt Sie nach
allem, was Sie nicht selber wissen knnen, Sie sollten also auch als Anfnger
keine Probleme damit haben.

Wenn Sie sich eingetragen haben und sich im Hauptmen befinden, knnen Sie
uns schon erreichen: Drcken Sie 'E', dann 'P', dann geben Sie als Adressaten
Thomas Tempelmann >Klammeraffe< M ein (der "Klammeraffe" ist das Zeichen,
das  Sie  mit  Altenate-  erhalten).  Daraufhin  knnen  Sie  eine  Nachricht
1.5  Unser Service: Mailbox und Soforthilfe bei Fehlern                    1 - 11
________________________________________________________


eingeben. Teilen Sie uns mit, da Sie Megamax-Anwender sind und ob Sie nur
eine Frage haben, ob Sie an den Megamax-spezifischen oder auch an allen
Modula-bezogenen Informationen Interesse haben. Beenden Sie die Texteingabe,
indem Sie eine Zeile mit einem Punkt am Anfang eingeben. Rufen Sie dann am
bernchsten Tag wieder an - dann sollten Sie schon eine Antwort erhalten
haben.  Wir  geben  Ihnen  dort  auch  gerne  Hilfestellung,  wenn  Sie  noch
allgemeine Probleme mit der Datenfernbertragung und der Mailbox-Bedienung
haben.  Sollte  es  aus  unvorhersehbaren  Grnden  nicht  klappen,  uns  in  der
Mailbox zu erreichen, wenden Sie sich bitte an Application Systems.

Nummern einiger MAUS-Boxen
    Mnchen 1       (089) 654708    (ist evtl. nicht zugnglich)
    Mnchen 2       (089) 8143547
    Mnchen 3       (089) 659769
    Starnberg        (08157) 7626
    Bonn             (0228) 254020
    Aachen          (0241) 154949
    Kln-Porz        (02203) 12400
    Mnster         (0251) 77261
    Hamburg         (040) 5381657        ... und das sind lngst nicht alle!

Wenn Sie erfahrener in der Mailbox-Szene sind, weisen wir Sie darauf hin,
da die allgemeinen Modula-Mitteilungen im FIDO- und im MAUS-Netz, sowie
im MAUS-Brett der Zerberus-Boxen vertreten sind. Wenn Ihnen das nichts
sagt, sie aber trotzdem brennend daran interessiert sind, was damit gemeint
ist, rufen Sie doch ebenfalls einmal in der MAUS Mnchen an und fragen Sie
uns danach, wie Sie diesem Forum von Ihrer Heimatstadt aus am gnstigsten
folgen knnen.


Soforthilfe bei Fehlern im Megamax-System

Haben  Sie  Fragen  oder  Vorschlge  zur  Bedienung  oder  den  Bibliotheken,
wenden  Sie  sich  bitte  schriftlich  an  den  Vertrieb  (Application  Systems
Heidelberg).  In  besonders  dringeden  Fllen,  beispielsweise,  wenn  Sie  einen
Fehler im Compiler oder einer Bibliotheksfunktion vermuten  und  auf  dessen
einwandfreies Funktionieren angewiesen sind, knnen Sie sich auch telefonisch
dort melden. Erklren Sie kurz die Dringlichkeit, dann werden Sie gegebenen~
falls die direkte Telefondurchwahl des zustndigen Programmierers erfahren.
Wir,  die  Programmierer  werden  uns  bemhen,  solche  Probleme  dann
schleunigst aus dem Weg zu schaffen. Da wir das gesamte Megamax-System
selbst erstellt haben, ist uns die Hilfe in jedem Fall mglich.

Auch in weniger dringenden Fllen bitten wir Sie, uns ber jede Macke am
System schriftlich Nachricht zu geben, denn es kam bereits vor, da auch
noch nach vier Jahren Fehler in bis dahin nicht vernderten Programmteilen
entdeckt wurden. Rechnen Sie also nicht damit, da der von Ihnen vermutete
1.5  Unser Service: Quelltexte und 68020-Assembler                     1 - 12
________________________________________________________


Fehler uns lngst bekannt sei - sonst wundern Sie sich beim nchsten Update
bitte nicht, da er immer noch vorhanden ist.

Es ist auch gut mglich, da der Fehler bereits behoben wurde. In solch einem
Fall erhalten Sie gleich Nachricht und knnen ein Update erhalten:

Zu jeder Zeit knnen Sie alle Ihre Originaldisketten plus DM 20.- (Scheck oder
bar) an den Vertrieb einsenden, um das derzeit aktuelle System zu erhalten.
Nur, wenn sich grere nderungen ergeben, ggf. sich auch das Handbuch
ndert, informieren wir Sie automatisch ber ein "groes" Update/Upgrade.


Quelltexte der Bibliotheken

Wenn Sie auf ein einwandfrei funktionierendes System angewiesen sind, wissen
Sie bereits, da wir Sie da nicht im Stich lassen. Wenn Sie dennoch darauf
Wert legen, zur Not selbst alles in der Hand zu haben, knnen Sie von uns die
Quellen  aller  Module,  abgesehen  vom  Compiler,  gegen  eine  Schutzgebhr
erhalten. Wenden Sie sich dazu bitte schriftlich an unseren Vertrieb.


Assembler fr 68020/30 und 68881/2 (FPU)

Der Inline-Assembler des Megamax-Compilers ist fr den Befehlsumfang eines
normalen  Atari  ST  /  Mega  ST  ausgelegt.  Steckt  in  Ihrem  Rechner  eine
Erweiterungskarte mit einem 68020-Prozessor (auch 68030, 68040,...) oder
sind Sie gar stolzer Besitzer eines Atari TT, knnen Sie von uns den Compiler
mit erweitertem Inline-Assembler fr diesen Prozessor und seinen optionalen
Mathe-Koprozessor  erhalten.  Wenden  Sie  sich  dazu  bitte  an  den  Vertrieb
(Application Systems Heidelberg).

Wenn  Sie  lediglich  einen  Mathe-Koprozessor  (FPU)  fr  den  normalen  ST
besitzen, knnen wir Ihnen leider nicht mit einem speziellen Assembler dienen:
Die  FPU  kann  nur  in  Verbindung  mit  einer  68020  (oder  hher)  direkt
programmiert  werden,  beim  ST  mssen  die  Maschinen-Instruktionen  ber
komplizierte Befehlsfolgen durch die 68000-CPU bermittelt werden.

Glcklicherweise haben wir im Modula-Compiler die Verwendung der FPU im
ST sehr effektiv implementiert, soda sowieso nur  selten  Optimierungen  in
Assembler dienlich sind.

Wollen Sie die FPU im Atari ST trotzdem selber programmieren, empfehlen wir
Ihnen den FPU-Preprozessor, der Ihnen dazu viel Arbeit abnimmt. Wenden Sie
sich an:
         Jens Decker
         Frhlingstr. 11
         8721 Rthlein
1.5  Deren Service: Portable GEM-Bibliothek                              1 - 13
________________________________________________________


Portable Bibliotheken fr den Atari ST/ TT

Wenn Sie sich mal unter den diversen Anbietern fr Modula auf dem Atari
umsehen, werden Sie sicher schnell feststellen, da alles, was ber die sog.
Standard-Module  bei  Modula  hinausgeht,  die  Idee  der  portablen  Sprache
vollkommen  aufgibt.  Zwar  wird  der  ISO-Standard  viel  mehr  und  bessere
Module festschreiben, rechnerspezifische Bibliotheken, wie die Atari-Funktionen
fr GEMDOS und BIOS sowie das  GEM,  knnen  dabei  nicht  bercksichtigt
werden.

Ein langjhriger Modula-Programmierer auf dem Atari ST hat nun unbeirrt der
Interessen  der  einzelnen  Modula-Anbieter  eine  Bibliothek  erstellt,  die  alle
Funktionen des GEMDOS, BIOS, XBIOS und vor Allem des GEM umfat. Die
Namen  der  Bezeichner  und  die  Parameter  der  Prozeduren  wurden  nach
Modula-Richtlinien sehr nah an der C-Definition von DRI und Atari angelehnt.
Die Funktionen rufen direkt die jeweiligen Betriebssystemfunktionen auf. Es gibt
also keine Sicherheitskontrollen, wie bei der Megamax-Bibliothek, dafr sind
die Funktionen aber kompakter. Weitere Module bauen darauf auf, sie nennen
sich  MagicDials.  Darin  sind  beispielsweise  enthalten:  Dialoge,  in  denen  die
Knpfe mit Tastenkombinationen anwhlbar sind, Menzeilen in Fenstern (z.B.
fr Accessories) sowie die bekannten "fliegenden" Dialoge. Praktisch alles, was
die C-Bibliothek zum Buch "Vom Anfnger zum GEM-Profi" enthlt und noch
einiges Praktische mehr!

Die Module sind fr viele Modula-Systeme auf dem Atari und evtl. bald auch
fr IBM PC-Kompatible verfgbar. Wollen Sie portabel in GEM programmieren,
beispielsweise fr Verffentlichungen in Zeitschriften, knnen wir Ihnen diese
Bibliothek wrmstens empfehlen.

Die MAGIC-Library ist Shareware und Sie erhalten sie gegen Einsendung einer
doppelseitig  formatierten  Disk  und  dem  Rckporto  oder  in  unserer  vorher
erwhnten Mailbox. Sie knnen die Software kostenlos ausprobieren und bei
Gefallen  die  fr  die  Nutzung  erforderliche  Lizenzgebhr  von  DM  15.-
nachzahlen. Fr DM 40.- erhalten Sie sogar noch die zustzlichen Module, wie
die erwhnten MagicDials. (Alle Module werden natrlich im Quelltext geliefert!)
Vertrauensvolle Interessenten knnen das Geld natrlich auch gleich beilegen.

Bei Interesse wenden Sie sich bitte direkt an den Autor:

               Peter Hellinger
               Brunnengasse 51
               8500 Nrnberg 1
               Tel. (0911) 22 36 65
               Kto-Nr: 3009612026 bei KKB-Dsseldorf, BLZ 300 209 00
1.5  Deren Service: ADT & C-Linker                                      1 - 14
________________________________________________________


ADT - Abstrakte Datentypen

INTEGER, CHAR, Records und Arrays sind fr  eine  Sprache  wie  Modula-2
nicht genug. Auch Listen und Bume sind wichtige Datenstrukturen.  Modula
bietet  allerdings  nur  das  Ntigste,  um  damit  umzugehen.  Die  Megamax-
Bibliothek enthlt beispielsweise das Modul Lists, um beliebige Datenstrukturen
zu einer Liste zu verketten. Aber auch hier fehlen Funktionen, um die gesamte
Liste zu kopieren, abzuspeichern usw.

Die ADT-Modulbibliothek geht hier bis zum letzten. Sie enthlt praktisch alle
Funktionen,  um  mit  Listen,  Binrbumen  (auch  AVL,  also  automatisch
ausgeglichenen), Hash-Tabellen, Stacks (LIFO) und Queues (FIFO) komfortabel
umzugehen. Die Daten werden nicht wie beim Lists-Modul lediglich ber Pointer
verwaltet,  sondern  knnen  komplett  zugewiesen  werden.  Damit  ist  dann
beispielsweise das Kopieren (Zuweisen) kompletter Listen problemlos mglich.
Fr  Geschwindigkeitsfanatiker  gibt  es  aber  auch  immer  die  Option,  beim
Einfgen nur eine Referenz (also Adresse und Lnge) der Daten zu bergeben,
soda das Kopieren des gesamten Datums dabei entfallen kann. Und berhaupt:
Alle Routinen sind sehr auf Effizienz und Geschwindigkeit bedacht.

Was noch? Beispielsweise gibt es eine automatische Markenverwaltung bei den
Listen - wenn Sie wissen, worum es geht. Natrlich knnen alle Strukturen
miteinander  verknpft  werden  und  Datei-Ein-/Ausgabe  ist  auch  mit  drin.
Megamax-Verwhnte  werden  auch  die  automatische  Fehlerbehandlung  zu
schtzen wissen. Drumherum gibt es noch einige Beispiel- und Hilfsmodule fr
die Praxis. Und die Quelltexte aller Module gibt es auch - praktisch umsonst!

Also los! Bestellen Sie noch heute die ultimative ADT-Bibliothek bei
               Wolfgang Keller
               Karl-Hoffmann-Str. 8
               7500 Karlsruhe 1
                 (0721) 386456


Einbindung von Funktionen der Sprache C

Sind Sie Multilinguist? Werden Sie mit der Sprache C - freiwillig oder eher
unfreiwillig -  konfrontiert?  Haben  Sie  Funktionen  in  C,  die  Sie  nicht  nach
Modula-2  umschreiben  wollen/knnen?  Dann  lesen  Sie,  was  Ihnen  Michael
Seyfried  (Autor  des  PD-Programms  FuncCalc  und  einiger  MeMoX-  und
MM2-Beitrge) Ihnen empfiehlt:

Fr C-Programmierer, die auf Modula-2 umsteigen wollen  und  fr  Modula-
Programmierer, die C-Programme einbinden wollen, gibt es als Zusatzprodukt
zu Megamax Modula-2 (MM2) und Turbo-C (TC) das Programm MM2CLink
(Megamax  Modula-2  C-Linker).  MM2CLink  konvertiert  Objektdateien  vom
1.6 Anmerkungen zu den Lizenzvereinbarungen                            1 - 15
________________________________________________________


Borland- ins MM2-Format. Es kann aus einem oder mehreren C-Objektdateien
ein MM2-Modul erzeugen, das alle gewnschten Variablen und Prozeduren der
C-Module exportiert um sie dann in MM2-Modulen importieren und benutzen
zu knnen. So kann die ganze TC-Laufzeitumgebung unter MM2 eingebunden
werden.  Dabei  ist  im  Gegensatz  zu  TC  schon  auf  Objektcodeebene  eine
Modularisierung  mglich:  Aus  TCSTDLIB.LIB  und  TCFLTLIB.LIB  wird  das
MM2-Modul TCSTDLIB und aus TC...LIB.LIB werden die MM2-Module TC...LIB.
Man braucht auch fr die konvertierten C-Module keinen separaten Linkerlauf
sondern  kann  weiterhin  das  bequeme  Loadtime-Linking  nutzen.  MM2CLink
bietet  eine  komfortable  Untersttzung  bei  den  einzelnen  Schritten  der
C-Einbindung. Es luft in der MM2-Shell und benutzt deren Parameter mit:
Compiler, Editor und TC lassen sich direkt aus MM2CLink aufrufen.

Sie knnen das MM2CLink-Paket fr wenig Geld direkt beim Autor bestellen.
Ihre Kontaktadresse fr Fragen und Bestellungen:
               Michael Seyfried
               Unterer Mauergarten 17
               6520 Worms
                  (0631) 63158  oder  (06241) 54671
               Mailbox: MAUS Starnberg (STA), (08157) 7626



1.6  Anmerkungen   zu   den   Lizenzverein~
         barungen

Software

Die  Disketten,  auf  denen  Sie  Megamax  Modula  erhalten  haben,  sind  nicht
kopiergeschtzt.  Auf  diese  Weise  mchten  wir  unseren  Kunden  unntigen
rger und Unbequemlichkeiten bei der Handhabung des Systems ersparen. Sie
drfen (und sollten) Backup-Kopien fr Ihren persnlichen Gebrauch anlegen,
wie auch im Abschnitt 2.1 beschrieben wird.

Trotzdem unterliegt natrlich auch Megamax Modula dem Urheberrecht: Sie
drfen nicht das komplette Programmpaket an Ihre fnf besten Freunde weiter~
geben. Hier mchten wir nicht nur darum bitten, unsere  Entwicklungsarbeit
(und den Verzicht auf einen lstigen Kopierschutz) zu honorieren, sondern auch
noch kurz auf die Seriennummern hinweisen, die in der Software enthalten
sind. Jedes erworbene Modula-System darf zu jedem Zeitpunkt nur auf einem
einzelnen Rechner verwendet werden.

Wenn Sie mit dem Megamax-System Software  entwickelt  haben  und  diese
verkaufen (oder verschenken) wollen, mchten  wir  Ihnen  natrlich  nicht  im
Wege stehen (und wir mchten auch keine Lizenzgebhren von Ihnen haben).
Daher gilt folgende Regelung:
1.6 Anmerkungen zu den Lizenzvereinbarungen                            1 - 16
________________________________________________________


* Von Ihnen unter Megamax Modula entwickelte Programme drfen uneinge~
schrnkt weitergegeben werden. Das gilt ebenso fr die Code-Moduln unserer
Library, nicht jedoch fr deren zugehrige Quelltexte.

* Die Textversionen der Definitionsmodule unserer  Library  drfen  Sie  auch
gerne verbreiten - wir hoffen,  da  jeder  Leser  dann  auch  sofort  so  eine
Programmierumgebung haben will...

* NICHT weitergeben drfen Sie alle brigen Bestandteile des Modula-Systems.

* In Zweifelsfllen erkundigen Sie sich bitte bei Application Systems Heidelberg.


Handbuch

Das  vorliegende  Handbuch  darf,  auch  auszugsweise,  nicht  kopiert  werden;
weder durch mechanische, optische, magnetische, elektronische noch chemische
Reproduktionsverfahren.  (Fllt  Ihnen  noch  ein  anderes  Verfahren  ein?  Bitte
auch  nicht  verwenden!)  Ausnahmen  bedrfen  der  schriftlichen  Genehmigung
durch Application Systems Heidelberg.


Haftungsausschlu

Bitte  nehmen  Sie  zur  Kenntnis,  da  wir,  die  Autoren,  dieses  Produkt  mit
groer  Sorgfalt  entwickelt  und  getestet  haben.  Dennoch  knnen  uns  dabei
Fehler unterlaufen sein. Jedoch knnen weder wir noch  unser  Vertrieb  fr
Fehler im Handbuch und in der Software eine Haftung bernehmen, insbeson~
dere fr Folgeschden bei Dritten, die von der mit diesem Produkt erstellten
Software ausgehen.

Das  bedeutet,  da  Sie  Ihre  selbst  entwickelte  Software  inklusive  der
eingebundenen Megamax-Bibliothek angemessen testen mssen, wenn Sie sie
Dritten gegenber zugnglich machen, weil wir dort zu keinerlei Gewhrleistung
mehr verpflichtet sind.
