

                                       
                                  HOT-TOOLS         
                                  ---------         
                                       


                            f  r   M o d u l a - 2



                            Allgemeines zu den Tools




   Die Tools wurden in Topspeed Modula-2 Version 3.1 geschrieben, wie auch das
   Spiel Hotdog.

   __________________________________________________________________________                                 *  Anhang   

                                 Kurz Umrissen
   __________________________________________________________________________


   In Modula-2 mssen bis auf bestimmte Grundfunktionen (z.B. MOD, +, *, usw.)
   alle Befehle erst aus Bibliotheksmodulen importiert werden. Dies geschieht
   mit den Befehlen FROM ... IMPORT. So mu z.B. der Befehl WrStr (Ausgabe
   eines Strings auf dem Bildschirm) erst aus dem Modul IO, welches smtliche
   In/Out-Befehle (alle Befehle fr Ein- und Ausgabe) enthlt, importiert
   werden:

                             FROM IO IMPORT WrStr;

   Sie knnen nun auch eigene Befehle in Form von Prozeduren erstellen. Dazu
   mssen Sie erst ein Bibliotheksmodul kreieren. In einem DEFINITION MODULE
   wird das Bibliotheksmodul mit den gewnschten Prozeduren definiert, in
   einem IMPLEMENTATION MODULE werden alle Prozeduren formuliert. Sind beide
   Teile fertig, kann in jedes Programm (Modul) dieses Bibliotheksmodul und
   seine Prozeduren mittels FROM ... IMPORT importiert werden. In anderen
   Programmiersprachen (z.B. Basic oder Pascal) geschieht das in hnlicher
   Weise mittels sogenannter UNITS.
   Da es hier zu weit fhren wrde, bis ins Detail zu gehen, mchten wir hier
   auf entsprechende Literatur verweisen (siehe Anhang). Oder Sie kaufen die
   Sharware-Version des Modula-2 Entwicklungspakets von Fitted Software Tools.
   Dort finden Sie in den Dokumentationsdateien eine ausfhrliche Einfhrung
   in die Sprache (allerdings auf Englisch). Dieses Shareware-Paket knnen Sie
   auch bei uns bestellen (siehe Datei BESTELL.TXT).
   Damit Sie die Quelltexte besser verstehen, sind viele Kommentare
   hinzugefgt. Zu jeder importierten Prozedur gibt es eine kurze
   Funktionserklrung. Die Erluterungen finden Sie unter jeder FROM ... IMPORT
   Zeile. In den DEFINITION MODULEn sind die Funktionen der Prozeduren und
   ihrer Variablen erklrt, in den IMPLEMENTATION MODULEn sind Kommentare
   zum Verstndnis der Funktionsweise des Quelltextes beigefgt.
   Lesen Sie bitte die Datei VOLLVERS.TXT, um die genauen Unterschiede zur
   Vollversion zu erfahren.

   Grundlegende Informationen zum BIOS als auch zum Thema Farbregister und
   Interrupt finden Sie im Anhang.

   Kommentare stehen immer zwischen den Zeichen (*.....*).

   __________________________________________________________________________                                 *  Anhang   

                                    Inhalt
   __________________________________________________________________________


   Folgende Tools und ihre Dateien sind auf der Diskette in den angegebenen
   Unterverzeichnissen zu finden:


             VGA136: VGA136.MOD           im Unterverzeichnis \VGA136
                     VGA136.DEF
                     VGA136.OBJ
                     VGADEMO.EXE

           GrafText: GRAFTEXT.MOD         im Unterverzeichnis \GRAFTEXT
                     GRAFTEXT.DEF
                     GRAFTEXT.OBJ

             Dimmer: DIMMER.MOD           im Unterverzeichnis \DIMMER
                     DIMMER.DEF
                     DIMMER.OBJ
                     DIMDEMO.MOD
                     DIMDEMO.EXE

              Paled: PALED.EXE            im Unterverzeichnis \PALED
                     10 Farbpaletten in
                     *.PAL-Dateien        im Unterverzeichnis \PALED\PALETTEN

            Sampler: SAMPLER.EXE          im Unterverzeichnis \SAMPLER
                     SETFREQ.EXE
                     SETALLSP.EXE
                     Samples

         VisualText: VISUALTX.EXE         im Unterverzeichnis \VISUALTX
                     50 Schriften in
                     *.SRF-Dateien        im Unterverzeichnis \VISUALTX\SCHRIFT

           Parallel: ZeitI.MOD            im Unterverzeichnis \PARALLEL
                     ZeitI.EXE
                     ZeitII.MOD
                     ZeitII.EXE
                     ZeitIII.MOD
                     ZeitIII.EXE
                     ZeitIV.MOD
                     ZeitIV.EXE

   Alle Textdateien und Dokumentationen befinden sich im Unterverzeichnis
   \DOC.

   Zustzlich enthalten ist das Datenpaket BusySoft im Unterverzeichnis
   \BUSYSOFT (nur Vollversion). Nheres dazu siehe unten unter "BusySoft".

   Die Tools behandeln dabei folgende Themen:

   VGA 136:    Im 16-Farb-Modus der VGA-Grafik (640 x 480) werden mittels
               einfacher Prozeduren 120 weitere Farben durch Mischen der 16
               Grundfarben erzeugt. Dadurch stehen 136 Farben zur Verfgung.

   GrafText:   Erzeugt Textausgaben im Grafik-Modus mittels ROM. Dabei knnen
               viele verschiedene Parameter wie Gre, Breite, Farbe, sowie
               viele weitere grafische Effekte eingestellt werden. Somit
               stehen Ihnen tausende verschiedener Schrifttypen zur Verfgung,
               ohne da sie Fonts kreieren mssen.

   Dimmer:     Enthlt universelle Prozeduren zum Ein- und Ausblenden des
               Bildschirms.

   Paled:      Ein Programm zur Zusammenstellung der 16 VGA-Farben mit vielen
               ntzlichen Funktionen wie Abspeichern und Ausdrucken der
               Parameter-Tabellen.

   VisualText: Ein Programm zur interaktiven Schriftgestaltung im Grafik-
               Modus. Alle kreierten Schriften knnen mittels der Prozeduren
               von GrafText in jedes Programm eingebunden werden.

   Sampler:    Abspielen von fertigen Samples auf dem eingebauten
               PC-Lautsprecher.

   Parallel:   Zeigt am Beispiel der Zeitsteuerung, wie man ohne Benutzung
               paralleler Prozesse (Koroutinen) gleichzeitige Ablufe
               erzeugen kann.


   __________________________________________________________________________                                 *  Anhang   

                                     Demos
   __________________________________________________________________________


   Die Demo-Programme (VGADEMO.EXE und DIMDEMO.EXE) starten Sie, indem Sie
   in das Verzeichnis oder zu dem Laufwerk wechseln, wo sich die Dateien
   befinden. Dann tippen Sie den Namen der EXE-Datei (z.B. VGADEMO) und
   drcken Sie <Return>.
   Ein weiteres gutes Beispiel fr die Verwendung der Tools ist das Spiel
   Hotdog. Dort wurden z.B. zur Schrifterstellung ausschlielich die Proze-
   duren aus GrafText verwendet. Auch alle anderen Tools wurden so wie Sie in
   den Quelltexte vorliegen verwendet.

   __________________________________________________________________________                                 *  Anhang   

                                    VGA136
   __________________________________________________________________________


   Die VGA-Grafik-Karte ist heutzutage Standard. Mittler-weile ist sogar
   Super-VGA-Grafik weitverbreitet. Die normale VGA-Grafik bietet zwei
   Auflsungen: 640 x 480 Pixel bei 16 Farben und 320 x 200 Pixel bei 256
   Farben. Fast alle Spiele werden noch im 320 x 200 Pixel-Modus wegen der
   Farbvielfalt programmiert. Eine Programmierung der Super-VGA-Karten ist
   sehr aufwendig, da es keinen einheitlichen Standard gibt und fr jede
   Grafikkarte ein eigener Treiber bentigt wird. Wer jedoch die 16 Farben
   gut nutzt, kann auch damit sehr schne Grafik erzeugen. Anhand der
   Prozeduren XHLine und XVLine werden horizontale und vertikale Linien
   erzeugt, die aus zwei der 16 Grundfarben gemischt werden, d.h. von Pixel
   zu Pixel wird die Farbe gewechselt. Schauen Sie sich einfach das Demo-
   Programm VGADEMO.EXE an.Dort sehen Sie auch, wie dieser Effekt im Spiel
   Hotdog verwendet wurde.

   __________________________________________________________________________                                 *  Anhang   

                                    GrafText
   __________________________________________________________________________


   Textausgabe im Grafik-Modus wird nicht nur in Spielen bentigt, sondern
   mehr und mehr in Anwendungs-Programmen, da die triste Obtik im Text-Modus
   nicht sehr ansprechend ist. Die Lsung dieses Problems wird meist durch
   Fonts gelst. Man entwickelt einen speziellen Schrifttypen (wie z.B.
   Courier, Draft, Roman, usw.) und speichert die Daten in einer Datei. Wir
   mchten hier nur solche Dateien betrachten, die eine Pixel-Matrix
   gespeichert haben. Jedem Buchstaben ist z.B. ein Feld von 8 x 14 Pixeln
   zugeordnet. Soll das Zeichen auf dem Bildschirm dargestellt werden, wird
   die Information ber das Aussehen des Zeichens aus diesem Zeichensatz
   geholt. Hier sehen Sie z.B. die Pixel-Matrix des Buchstaben A:


                               1 2 3 4 5 6 7 8
                             1 . . . . . . . .
                             2 . . . . . . . .
                             3 . . . X . . . .
                             4 . . X X X . . .
                             5 . X X . X X . .
                             6 X X . . . X X .
                             7 X X . . . X X .
                             8 X X X X X X X .
                             9 X X . . . X X .
                            10 X X . . . X X .
                            11 X X . . . X X .
                            12 X X . . . X X .
                            13 . . . . . . . .
                            14 . . . . . . . .

   Es gibt auch noch Schrifttypen mittels Vektor-Grafik, auf die wir hier
   nicht nher eingehen.
   Der IBM-Zeichensatz ist fest in jedem Computer gespeichert. Das erspart
   also die Entwicklung eigener Fonts. In der Prozedur PlotStr wird auf diesen
   Zeichensatz zugegriffen. Mittels der vielen anderen Prozeduren kann dann
   die Gestalt der Zeichen abgendert werden. Lassen Sie Programm VisualText
   2.0 laufen. Alle Schriften, die Sie dort kreieren knnen, stehen mittels
   der Prozeduren von GrafText fr Ihre eigenen Programme zur Verfgung.
   Aber auch in dem Programm DIMDEMO.EXE wurden ausschlielich mit GrafText
   erzeugte Schriften verwendet.
   Details ber die verschiedenen Parameter entnehmen Sie bitte der Datei
   GRAFTEXT.DEF.
   Fr zeitkritische Anwendungen knnen Sie die Prozedur PlotStr mit den
   gewnschten Parametern versehen, damit alle Berechnungen nicht fr jeden
   Buchstaben neu gemacht werden mssen. Zwei Beispiele dafr sind die
   Prozeduren PlotStrFast und PlotStrFast2.
   Zustzlich knnen Sie die Parameter mit VisualText 2.0 interaktiv ver-
   ndern. Eine Programmbeschreibung zu VisualText finden Sie in der Textdatei
   VISUALTX.TXT.

   __________________________________________________________________________                                 *  Anhang   

                                   VisualText
   __________________________________________________________________________


   Dieses Programm bietet Ihnen die Mglichkeit, alle Parameter der Tool
   GrafText On-Screen zu verndern, d.h. Sie sehen sofort am Bildschirm die
   den gewhlten Parametern entsprechende Schrift. 50 Beispiele finden Sie
   im Unterverzeichnis \SCHRIFT. Eine solche Datei bentigt dabei nur
   70 Byte, da nur die Variablen abgespeichert werden mssen.
   Mchten Sie also z.B. eine bestimmte Schrift fr Ihr Programm, dann
   entwerfen Sie eine Schrift mittels VisualText. Sind Sie mit einer Schrift
   zufrieden, knnen Sie die Parameter abspeichern und ausdrucken. Die
   Parameter mssen Sie dann in Ihrem Programm nur noch mittels der entspre-
   chenden Prozeduren (CharSize, CharType, CharEffect, CharSound und CharCut)
   der Tool GrafText bergeben. Dann knnen Sie die Schrift beliebig in Ihrem
   Programm mittels der Prozedur PlotStr verwenden.
   Die Shareware-Version bricht nach kurzer Zeit automatisch ab. Auerdem
   knnen nur maximal 70 Schriften verwaltet werden.
   In der Datei VISUALTX.TXT finden Sie alle Bedienelemente ausfhrlich
   erklrt.
   Hinweis: VisualText erzeugt zusammen mit GrafText Schriften fr den Modus
   640x480 Pixel mit 16 Farben. Sie knnen die Prozeduren im Modus 320x200
   verwenden. Bedenken Sie jedoch, da die Schriften dann mehr als doppelt
   so gro werden. Auerdem greifen die Prozeduren nur auf die ersten 16
   Farben der Farbpalette zurck.

   __________________________________________________________________________                                 *  Anhang   

                                   Parallel
   __________________________________________________________________________


   Wenn Sie parallele Prozeduren erzeugen mchten, verwenden Sie in der Regel
   sogenannte Coroutinen, d.h. der Prozessor springt schnell zwischen einzel-
   nen Prozessen hin und her, so da dem Betrachter eine Gleichzeitigkeit
   vorgetuscht wird. Das Problem liegt darin, da das Springen zwischen
   Coroutinen viel Zeit kostet, denn jeder einzelne Prozess mu "eingefroren"
   werden, d.h. alle Registerinhalte sowie Variablen der Prozesse usw. mssen
   zwischengespeichert und spter beim Wiederaufruf wieder "aufgetaut" werden.
   Dieses Problem stellte sich z.B. bei der Zeitsteuerung im Spiel Hotdog.
   In den einzelnen Levels ist nur eine begrenzte Zeit vorhanden, um das
   Level zu lsen. Die Zeit mu also gleichzeitig zum eigentlichen Spielab-
   lauf stndig gemessen und angezeigt werden. Dies ist ohne weiteres mit
   Coroutinen mglich. Ziel war es jedoch, die Zeitanzeige mglichst gro
   darzustellen, damit man sie whrend des Spiels immer im Auge behalten kann.
   Eine grafische Lsung (Farbbalken) ist natrlich auch mglich und ein-
   facher. Doch eine einmal gestellte Herausforderung lt man nicht fallen.
   Lsungen fr dieses Problem ohne Coroutinen finden sie in den einzelnen
   Dateien ZeitI bis ZeitIV. Die einzelnen Quelltexte wurden als EXE-Dateien
   ausgelegt. So knnen Sie sich die Ergebnisse gleich in den entsprechenden
   Programmen ansehen.
   Die Inhalte der einzelnen Programme sind folgende:
   ZEIT I: Erzeugung einer allgemeinen, parallel laufenden Zeitanzeige.
           Die Zeit wird rckwrts gezhlt (fest vorgegebener Wert, hier
           100 Sekunden).
   ZEIT II:Erzeugung einer allgemeinen, parallel laufenden Zeitanzeige.
           Die Zeit wird vorwrts gezhlt (beginnend bei 0 Sekunden).
   ZEIT III:Erzeugung und Anzeige zweier paralleler Prozesse. In dem einen
            wird die Zeit gemessen, der andere zhlt einfach aufwrts.
   ZEIT IV:Entspricht dem Programm ZeitIII. Hier wurde jedoch die Geschwin-
           digkeit optimiert.
   Alle Programme lassen sich durch das Drcken einer beliebigen Taste ab-
   brechen.

   __________________________________________________________________________                                 *  Anhang   

                                     Dimmer
   __________________________________________________________________________


   Hier finden Sie universelle Prozeduren zum Ein- und Ausblenden des
   Bildschirms, sowohl fr den 16-Farbmodus, als auch fr den 256-Farbmodus.
   Zustzlich knnen Sie mit weiteren Prozeduren besondere Effekte
   wie berblenden oder Schattierungseffekte erzeugen. Was mit diesen Proze-
   duren mglich ist, zeigt Ihnen das Demoprogramm DIMDEMO.EXE anhand einiger
   Beispiele.

   __________________________________________________________________________                                 *  Anhang   

                                     Paled
   __________________________________________________________________________


   Dieses Hilfsprogramm ist sehr ntzlich, um Farbpaletten fr den
   16-Farb-Modus zu erstellen. Sie knnen damit die 16 Farben beliebig
   verndern und abspeichern. Sie knnen die Parameter fr die gesamte
   Farbpalette ausdrucken, speichern, usw. Dies erleichtert die Farbzusammen-
   stellung fr Ihr Programm enorm. Auerdem knnen Sie die ausgedruckte
   Parametertabelle direkt in Ihr Programm bernehmen.
   In der Datei PALED.TXT finden Sie alle Bedienelemente ausfhrlich erklrt.

   __________________________________________________________________________                                 *  Anhang   

                                    Sampler
   __________________________________________________________________________


   Die einfachste Mglichkeit, dem PC Klnge zu entlocken, besteht darin,
   mittels des eingebauten Lautsprechers ein paar Tne zu erzeugen. Dies geht
   jedoch nur im begrenzten Ma, wenn der Original-Lautsprecher eingebaut ist,
   da die Klangqualitt selbst bei Nicht-Hifi-Freaks nicht einmal ein mdes
   Lcheln hervorrufen kann. Wir haben uns beim Spiel Hotdog jedoch dafr
   entschieden, da dieses Klangmedium in jedem PC vorhanden ist.
   Bei den Soundkarten (SoundBlaster, AudioBlaster, AdLib, usw) scheitert es
   (selten) an der Kompatibilitt. Sicherlich sind diese Karten zukunfts-
   weisend.
   Fr eine Klangverbesserung empfiehlt es sich, einen besseren Lautsprecher
   einzubauen, da der eingebaute "Piepser" sehr klein ist und eine schlechte
   Klangqualitt bietet. Dies ist jedoch nur handwerklich versierten
   vorbehalten. Am besten ist ein Breitband- oder ein Tief-Mittelton-
   Lautsprecher.
   Manche Soundkarten bieten auch die Mglichkeit, die internen PC-Klnge
   ber die Soundkarte abspielen zu lassen. Einige Soundkarten bieten diese
   Option. Allerdings darf man kein Wunder erwarten, da der Klang hardware-
   bedingt immer verzerrt ist. Dies liegt daran, da der Lautsprecher nur
   auf zwei Arten angesteuert werden kann: Entweder direktes Abstrahlen einer
   Frequenz (z.B. mittels Befehl Sound ) oder durch stndiges Ein- und
   Ausschalten. Jedes Ein- und Ausschalten erzeugt ein "Knacken". Durch
   Softwaresteuerung knnen so auch Samples verzerrt wiedergegeben werden.
   Jede Programmiersprache bietet die Mglichkeit, dem Lautsprecher Tne
   bestimmter Frequenz zu entlocken (z.B. mit dem Befehl Sound, o..).
   Mit ein paar Tricks knnen Sie auch mehrstimmig spielen, wenn Sie schnell
   zwischen den verschiedenen Frequenzen hin- und herschalten. Am besten
   ist aber das Abspielen von Samples. Bei Hotdog sind auch viele Samples
   eingebaut. Dafr benutzten wir das DINGS (Digitalisier-Interface fr
   Noten, Gerusche und Sprache) aus dem Markt & Technik-Verlag. Das Programm
   SAMPLER.EXE kann alle auf der Diskette gespeicherten Samples (Dateien mit
   der Extension *.SPL) abspielen. Um das Laden der Dateien zu beschleunigen,
   sollten Sie alle Samples und die Datei SAMPLER.EXE auf Ihre Festplatte
   kopieren. Wenn Sie z.B. eingeben C:>SAMPLER ELEFANT.SPL, ertntaus dem
   PC-Lautsprecher ein gesampeltes Elefantengetse. Nun knnen Sie die
   Samples auch in Ihre Programme einbauen. In Topspeed Modula-2 geschieht
   das mit der Funktionsprozedur

               ExecCmd(Command: ARRAY OF CHAR):CARDINAL.

   Sie fhrt aus der Programmebene DOS-Kommandos aus.
   Mit der Programmzeile

               Wert:=ExecCmd(SAMPLER ELEFANT.SPL);

   knnen Sie das Elefantengetse vom Programm aus abspielen. Wert ist hier
   eine CARDINAL-Variable. Nheres dazu finden Sie im Handbuch Ihrer
   Programmiersprache.
   Das Programm SAMPLER.EXE gibt bei Problemen folgende Fehlermeldungen aus:

      * unable to open file %

   Fehler: Der Filename ist falsch oder das Samplefile ist nicht im
           aktuellen Verzeichnis.

      * unable to allocate memory for sample file %

   Fehler: Es ist nicht gengend Speicher mehr vorhanden.

      * unable to read sample file %

   Fehler: Das Samplefile ist beschdigt oder Fehler beim Lesen.

      * abnormal program termination

   Sonstige Fehler.

   Mit dem Programm SETFREQ.EXE knnen Sie die Abspielgeschwindigkeit durch
   ndern der Samplefrequenz verndern. Beim Starten geben Sie das zu
   bearbeitende Sample ein (z.B. SETFREQ ELEFANT.SPL). Mittels der Tasten
   1-6 wird die Frequenz verndert und abgespeichert.

   Mit dem Programm SETALLSP.EXE knnen Sie die Abspielfrequenz aller
   Samples verndern. Das Programm nimmt dazu als Referenz das Sample
   WILLKOMM.SPL. Sie knnen dieses Sample verndern, anschlieend werden
   alle Samples (die sich im aktuellen Verzeichnis befinden) an diese
   Geschwindigkeirt angepat.

   Hinweis: Die Frequenz steht bei jedem Sample in den ersten beiden Bytes.
   Das erste Byte verndert die Frequenz minimal, das zweite sehr stark.
   Durch Erhhen der Werte wird die Frequenz gesenkt und umgekehrt.

   Wenn Sie das Spiel Hotdog auf Ihrer Festplatte installieren, mssen Sie
   auch das Programm SETSAMPL aufrufen. Dieses Programm lt ein Test-Sample
   abspielen. Der Benutzer mu dann mitteilen, ob das Sample zu schnell oder
   zu langsam abgespielt wurde. Sobald das Test-Sample die richtige
   Abspielgeschwindigkeit hat, werden alle anderen Samples angepat, d.h.
   die ersten beiden Bytes der Samples werden entsprechend gendert.
   Das DINGS bietet eigentlich eine automatische Geschwindigkeitserkennung.
   Die Samples sollten also auf allen Rechnern gleich schnell abgespielt
   werden. Leider stimmt das nicht immer. Auch bei gleichen Prozessortypen
   treten Unterschiede auf. Dies hngt wohl auch mit der Anzahl an
   TSR-Programmen (speicherresistente Programme, die im Hintergrund ablaufen)
   zusammen.

   Obwohl jeder PC-Besitzer einen eingebauten Lautsprecher hat, ist fr die
   Zukunft eine Soundkarte die bessere Lsung. Fr Programmierer fllt die
   Wahl nicht schwer, da auf dem deutschen Markt die Soundblaster-Karte
   weit verbreitet ist und es mittlerweile auch Literatur dazu gibt. Am
   besten wre es, wenn Ihr Programm beides untersttzen wrde. Fr
   bestimmte wichtige Signale bleibt jedoch der PC-Lautsprecher die einzige
   Wahl, da er berall piept und tnt.

   Literatur:

   Josha Munnik/Eric Oostendorp: Das SoundBlaster Buch
   (Sybex-Verlag)

   ShareBert's MegaPack SoundBlaster (Sybex-Verlag)

   T. Riethmller: Programmierung der SoundBlaster-Karte
   (Tewi-Verlag)

   Lehmann, Riethmller, Straburg: Das SoundBlaster Profibuch
   (Addison-Wesley Verlag)

   Wir wnschen viel Spa beim Samplen!

   __________________________________________________________________________                                 *  Anhang   

                                    BusySoft
   __________________________________________________________________________


   Dieses Datenpaket besteht aus den Textdateien DIEENTST.TXT und
   ADRESSEN.TXT. Ersteres enthlt eine Dokumentation ber die Entstehung
   des Spiels "Hotdog" sowie viele Tips und Hinweise fr alle Programmierer.
   Die Datei ADRESSEN.TXT ergnzt diese durch Adressen, Bezugsquellen, usw.
   fr alle, die Ihr fertiges Programm vermarkten mchten. Nheres dazu
   entnehmen Sie bitte den Dateien selbst. Sie befinden sich auf der Diskette
   im Unterverzeichnis \BUSYSOFT.
   Nur in der Vollversion enthalten.

   __________________________________________________________________________                                 *  Anhang   

                                     Anhang
   __________________________________________________________________________


   Wer gut Programmieren mchte, kennt das BIOS seines Computers in- und
   auswendig. Wenn Sie einem Programmierer z.B. zurufen "Mchtest Du ein
   paar Chips?", wird er antworten: "Ja, aber bitte nur mit AMI Bios.". Das
   BIOS (Basic Input Output System) steckt im ROM und ist in jedem Computer
   resistent geladen. Es ermglicht den einfachen Zugriff auf viele
   verschiedene Funktionen. Per Interrupt knnen diese Unterprogramme
   aufgerufen werden. Zu diesem Thema gibt es ausfhrliche Literatur:

   Ray Duncan: IBM ROM BIOS aus dem Vieweg-Verlag

   Es ist klein, gnstig, und enthlt alle Interrupt-Funktionen mit
   Erluterungen.

   Thom Hogan: Die PC-Referenz fr Programmierer

   Es ist gro, preismig unschlapp, aber ein Nachschlaghammer. Enthlt
   uerst ausfhrliche Informationen zu ASCII, Theorie, DOS-Befehle,
   Interrupt-Aufrufe, BIOS, EMS, Windows, Hardware, Jumper, Register, usw.
   Alles drin, alles dran. Aus dem Systhema Verlag (Microsoft Press).
   Wir beschrnken uns hier nur auf die wichtigsten Grafik-Funktionen.
   Der Interrupt wird je nach Programmiersprache durch den Befehl Intr,
   Call Interrupt o.. aufgerufen. Der Interrupt 10H ist zustndig fr alle
   Bildschirmfunktionen. Die einzelnen Parameter werden ber die Register
   des Prozessors (z.B. AX, BX, CX, DX, ES, usw.) bergeben.

   Hinweis: Jedes Register hat 16 Bit. Jedes Register kann in ein High- und
   in ein Low-Byte (Byte = 8 Bit) aufgespaltet werden. Das AX-Register
   besteht also aus den beiden Registern AH und AL. Von Fall zu Fall mssen
   die Parameter in ein ganzes Register (AX, ES, usw.) oder in halbe Register
   (AL, AH, usw.) geladen werden. Das hngt davon ab, wie gro der Wert der
   Parameter sein kann (max. 255 bei 8 Bit und max. 65535 bei 16 Bit). Alle
   Werte sind in hexadezimaler Form angegeben und sind durch ein H am Ende
   gekennzeichnet.

   Hier noch ein kleiner Einblick in den Aufbau der Farbregister:
   Es existieren insgesamt 255 DAC-Farbregister. Sie speichern beliebige
   Farbwerte, aufgespaltet in einen Rot-, Grn- und Blauanteilwert. Fr jeden
   Farbanteil gibt es 64 verschiedene Helligkeitsstufen. Insgesamt sind also
   64 * 64 * 64 verschiedene Farben mglich. In der Auflsung 640 x 480 Pixel
   knnen 16 verschiedene Farben gleichzeitig auf dem Bildschirm dargestellt
   werden. Dies entspricht den Farbregistern 0 bis 15. Das Farbregister 0 ist
   die Hintergrundfarbe. Jedem der 16 Farbregister wird eines der 255
   DAC-Farbregister zugewiesen.

   Die wichtigsten Interrupt-Befehle (Interrupt 10H) fr Grafik:

   Lies DAC Register: (Funktion 15H)
   -------------------------------------

   AL=15H, AH=10H, BX=Nummer des DAC Registers

   Rckgabe: CL:Blau-Anteil, CH:Grn-Anteil, DH:Rot-Anteil


   Lies mehrere DAC Register: (Funktion 17H)
   ---------------------------------------------

   AL=17H, AH=10H, CX=Anzahl der DAC Register
                   BX=Nummer des ersten DAC Registers
                   ES=Segment-Adresse einer Parameter-Tabelle
                   DX=Offset-Adresse einer Parameter-Tabelle

   Rckgabe: Die Rot-, Grn- und Blauanteile der DAC Register in der
             Parameter-Tabelle. Die Gre der Parameter-Tabelle mu
             CX*3 Byte sein.

   Setze DAC Register: (Funktion 10H)
   -------------------------------------

   AL=10H, AH=10H, BX=Nummer des DAC Registers
                   CL=Blau-Anteil
                   DH=Rot-Anteil
                   CH=Grn-Anteil


   Setze mehrere DAC Register: (Funktion 12H)
   ---------------------------------------------

   AL=12H, AH=10H, CX=Anzahl der DAC Register
                   BX=Nummer des ersten DAC Registers
                   ES=Segment-Adresse einer Parameter-Tabelle
                   DX=Offset-Adresse einer Parameter-Tabelle

   Die Gre der Parameter-Tabelle mu CX*3 Byte sein.


   Lies Palettenregister: (Funktion 07H)
   -------------------------------------

   AL=07H, AH=10H, BL=Nummer des Palettenregisters

   Rckgabe: BH=Farbwert (DAC Register)


   Lies alle Palettenregister + Rahmenfarbe: (Funktion 09H)
   ---------------------------------------------

   AL=09H, AH=10H, ES=Segment-Adresse einer Parameter-Tabelle
                   DX=Offset-Adresse einer Parameter-Tabelle

   Die Gre der Parameter-Tabelle mu 17 Byte sein.

   Rckgabe: Die Farbwerte der 16 Palettenregister und der Rahmenfarbe
             in der Parameter-Tabelle. Sie geben an, welchem DAC Register
             die Palettenregister zugeordnet sind.


   Setze Rahmenfarbe: (Funktion 01H)
   -------------------------------------

   AL=01H, AH=10H, BH=Farbwert (DAC Register)


   Setze Palettenregister: (Funktion 00H)
   -------------------------------------

   AL=00H, AH=10H, BL=Nummer des Palettenregisters
                   BH=Farbwert (DAC Register)


   Setze alle Palettenregister + Rahmenfarbe: (Funktion 02H)
   ---------------------------------------------------------

   AL=02H, AH=10H, ES=Segment-Adresse einer Parameter-Tabelle
                   DX=Offset-Adresse einer Parameter-Tabelle

   Die Gre der Parameter-Tabelle mu 17 Byte sein. Sie gibt an, welchen
   DAC Registern die Palettenregister zugeordnet werden.

   __________________________________________________________________________                                 *  Anhang   

                                   Literatur
   __________________________________________________________________________


   Fr Pascal gibt es eine unberschaubare Menge an Literatur. Informieren
   Sie sich bitte deswegen in einer Fachbuchhandlung ber spezielle Literatur.
   Fr Modula-2 ist die Auswahl schon begrenzter, deswegen hier eine Liste:

   Karl Vogel: Modula-2 Programmierkurs (Axis)

   Niklaus Wirth: Programmieren in Modula-2 (Springer)

   Niklaus Wirth: Algorithmen und Datenstrukturen in Modula-2 (Springer)

   Hilmar Pudlatz: Einfhrung in die Programmiersprache Modula-2 (Vieweg)

   Helmut Rohlfing-Brosell: Modula-2, Eine system. Darstellung f. d.
                            Praktiker (Springer)

   Herbert Schildt: Modula-2 Einfhrungskurs (McGraw-Hill)

   Herbert Schildt: Professionelles Modula-2 (McGraw-Hill)

   William C. Jones: Datenstrukturen mit Modula-2 (McGraw-Hill)

   Ulrich Kern: Wie man in Modula-2 programmiert (Vogel)

   Rudi Klatte: Programmiersprachen im Griff: Modula-2 (BI- Wiss.verl.)

   Richard Gleaves: Modula-2 fr Pascal-Programmierer (Springer)

   Claude A. Wiatrowski: Von C zu Modula-2 (McGraw-Hill)

   Ernst A. Heinz: Parallele Programmierung mit Modula-2 (Vieweg)

   Rudolf Hoermanseder: Modula-2 auf DOS (Hanser)

   Klaus Buergel: Modula-2 fr PC's: 1. Grundlagen (IWT)

   Klaus Buergel: Modula-2 fr PC's: 2. Vertiefung (IWT)

   Mario DalCin:Programmierung in Modula-2 (Teubner)

   Hermann Gehring: Einfhrung in Modula-2 (de Gruyter)

   Gnther Blaschek: Einfhrung in die Programmierung mit Modula-2 (Springer)

   Pomberger: Softwaretechnik und Modula-2 (Hanser)

   Hrmannseder/Mhlbacher: Modula-2 auf DOS (Hanser)

   Alle oben genannten Bcher bieten hauptschlich Grundlagen und Einfh-
   rungen. Achten sollte man vor allem auf das Druckjahr. Neuere Auflagen
   beinhalten nmlich auch Themen wie z.B. objektorientiertes Programmieren
   und verzichten auf veraltete Themen, wie z.B. CGA-Grafik.


   CHIP TOOL Praxis:
   Programmierpraxis mit Modula-2

   Ausgabe 1: Fenster- und Men-Technik * dynamische Strings *
              Bayer-Bume * Programmtexte ausdrucken * externe
              Dateien * komplexe Zahlen * Integrations-
              verfahren
   Ausgabe 2: Editor * ewiger Kalender * File-Verwaltung * FST
              Modula-2 * Grafik-Erweiterung fr Topspeed *
              Parallel-Programmierung * Maus-Modul fr Top-
              speed
   Ausgabe 3: Objekte * Suchverfahren Hashing * elektron.
              Lexikon

   Die Ausgaben sind nur bedingt zu empfehlen, da viele Tools in Topspeed
   Modula-2 (Version 3.xx) bereits implementiert sind (Grafikkartenerkennung,
   Hashing, Objekte, usw.). Ausgabe 3 ist bereits speziell auf Topspeed
   Modula-2 zugeschnitten.



   Literatur speziell zu Topspeed Modula-2:


   Anton Liebetrau: Topspeed Modula-2 von A-Z (Vieweg)

   Dieses Buch ist sehr geeignet als Ergnzung zum Handbuch. Es fhrt alle
   Befehle auf und gibt Bespiele dazu. Es enthlt aber (noch) nicht die
   neuen Befehle der Version 3.xx.

   Anton Liebetrau: Topspeed Modula-2 griffbereit (Vieweg)

   Dieses kleine Nachschlag-Heft enthlt die wichtigsten Befehle mit ihrer
   Syntax und kurzer Erluterung. Nur fr Anfnger empfehlenswert.

   Rames Abdelheim: Das Modula-2 Umsteigerbuch

   Von Turbo-Pascal zu Topspeed Modula-2 (Vieweg)

   Jan Bielecki: Topspeed Modula-2 (Hthig)

   Leider (noch) nicht aktuell auf die neuesten Versionen 3.xx zugeschnitten.


   Zu speziellen Programmierthemen (z.B. Grafik, Maschinensprache, Sound) gibt
   es viel Literatur, die sich jedoch meist auf verbreitete Programmier-
   sprachen (Pascal, Basic) bezieht. Aufgrund der Sprachhnlichkeiten bereitet
   jedoch das Umschreiben auf Modula-2 wenig Probleme.
   Zum Thema Computerspiele gibt es auch viele Bcher, leider gibt es aber
   uns kein bekanntes Buch, welches auf dieses Thema vertieft eingeht. Dies
   liegt wohl auch daran, da man alle Themen wie Grafik, Sound, Spieltheorie
   und Spielideen schlecht in ein Buch packen kann. Je nach Kenntnissen kann
   man aber ruhig mit einfachen Spielen wie "Errate Zahl", "Memory", usw in
   diese Thematik einsteigen.
   Wer sich fr strategische Spiele interessiert (Computer als Gegner), sollte
   sich die Ausgabe 1 der CHIP TOOL Praxis fr Modula-2 nher ansehen. Dort
   gibt es ein "Praktikum", welches anhand einfacher Beispiele (Tic-Tac-Toe)
   die Theorie der Nullsummenspiele darlegt. Wer sich nher damit befassen
   mchte, sollte wissen, da es sich dabei um hhere Mathematik handelt, die
   wahrlich nicht einfach ist. In einer guten Fachbuchhandlung finden sich
   bestimmt Bcher ber Spieltheorie u..

   Empfehlenswert fr alle professionellen und ambitionierten Programmierer
   ist die Zeitschrift Toolbox. Sie war frher als monatliches Heft
   erhltlich und erscheint jetzt vier mal im Jahr mit Diskette. Der Inhalt
   befat sich meistens mit sehr aktuellen und konkreten Problemen. Fr
   Einsteiger sind die meisten Thema jedoch zu komplex.

   Auch fr Einsteiger sehr geeignet ist die Zeitschrift DOS Extra. Diese
   unregelmig erscheinenden Sonderhefte befassen sich immer mit einem
   speziellen Thema, meistens auch fr Programmierer interessant (z.B.
   Grafik, Multimedia, usw.).

   __________________________________________________________________________                                 *  Anhang   

                          Unterschiede zur Vollversion
   __________________________________________________________________________


   Die genauen Unterschiede zur Vollversion entnehmen Sie bitte der Datei
   VOLLVERS.TXT.

   __________________________________________________________________________

                                Lizenzbestimmung
   __________________________________________________________________________


   Alle Dateien unterliegen dem Urheberschutzrecht und drfen von
   Ihnen nicht in eigene Programme eingebaut werden. Das benutzen der
   Programme unterliegt den allgemein gltigen Shareware-Regeln. D.h. Sie
   drfen die Tools nach Erhalt maximal 2 Wochen beliebig verwenden und
   testen. Mchten Sie die Programme weiterhin verwenden und die anderen
   Vorteile der Vollversion nutzen (siehe VOLLVERS.TXT), bestellen Sie bitte
   die Vollversion. Wenn nicht, mssen Sie die Tools wieder von Ihrer
   Festplatte lschen. Ein weiteres Nutzen der Tools verstt gegen das
   Urheberschutzrecht und wird strafrechtlich verfolgt.

   __________________________________________________________________________                                 *  Anhang   

                                   Copyright
   __________________________________________________________________________


   Diese Publikation darf weder als Ganzes noch in Teilen durch Vervielflti-
   gung oder auf andere Art ohne Erlaubnis wiedergegeben, reproduziert,
   verliehen, gesendet, bertragen oder vermietet werden.

   Tronix bernimmt keine Verantwortung und keine Haftung fr die Funktions-
   fhigkeit und fr Schden irgendwelcher Art, die durch die Anwendung oder
   durch die Nutzung der Software und Texte auftreten knnen.

   Tronix garantiert, da die bei uns gekaufte Software frei von Viren ist.
   Bei Zerstrung der Software durch Einflu von Viren-Programmen oder Virus-
   Schutzprogrammen bernimmt Tronix keinerlei Haftung.

   Bei Herstellungs- oder Verfielfltigungsfehlern senden Sie die defekten
   Disketten innerhalb von 14 Tagen mit Fehlerbeschreibung und Rechnungskopie
   ein. Die Disketten werden von uns ksotenlos ersetzt.

   Das Urheberrecht fr alle Programme und Quelltexte liegt ausschlielich
   bei Tronix.
   Die Quelltexte der Tools (alle *.MOD oder *.PAS-Dateien) sind lizenzfrei
   und drfen von Ihnen in eigenen Programmen verwendet werden. Das
   Urheberrecht bleibt davon unberhrt.
   Die Samples sowie alle Programme sind nicht lizenzfrei. Mchten Sie
   Programme in Ihrer Software einbauen, schreiben Sie uns.

   IBM ist eingetragenes Warenzeichen der International Business Machines Inc.

   Alle Rechte vorbehalten. Copyright (C) 1993, 1994