home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaDemoCD2.iso / ASCII / TEXTE / SCENE / FAQ-LISTS / cfaq_4.txt < prev    next >
Encoding:
Text File  |  1995-01-03  |  22.2 KB  |  529 lines

  1. _______________          _____      _____   _________       ___________________
  2. \.            /________ |.   /_____:o    | /.        \/|___/_       \         /
  3.  \___   _____/|.   /   \||  /|.    |:    |//   ______/·|.   / ______ \    ___/
  4.    /.   /_/·  ||  /     \:  \||    |·    |/   /   \ \/ ||  /_______ \/+    /
  5.   //  ____/   ||  \   \  \   \:   ¯¯¯    |   /    / /  ||  \ /·\  /  \  __/_
  6.  //   / //    |+   \   \      \  \___/   |   \___/ /   |·   \/  \/   /      /
  7. /·   /  \\         /    \     /    |:    |        /         /       /      /
  8. \___/    \________/_____|\___/:    |_____|_______/\________/_______/______/
  9.                              l_____|·MBB·
  10.  
  11.  
  12. _ ___                  \ _
  13.   ___|__________/\______\//\________________________________________________ _
  14.   \___   /  ___/  \_____\//\______________      /\   ______/  _______/  ___ _
  15.      | _/   \ _    \_   \/     |   ___)_/_  ___/_/_  ___)_\______   \______
  16.      | \     \/     /   ||     |   \      | \      | \          /    /    /
  17.  _ __|  \__________/____||     |____      |__      |__         _____/    ___ _
  18.      `----'              `-----'   `------' `------' `---------'  `------'
  19.                                                                          
  20.                               [hOMELESS÷bBS!]
  21.  
  22.     [bIRDHOUSE^pROJECTS eUROPEAN hQ][mYTH! gERMAN hQ][aRT-cORE! fUN hQ]
  23.  
  24.             [sYSdOODE: -sLIME!^bIRDHOUSE÷pROJECTS-lEADER^mYTH!]
  25.                [cOdOODES: mOGUe!/sCX^aC! pRIMUS!/bP!-lEADER]
  26.                      [MR.VAiN/bNZ^aC! wHIRLWIND/mYTH!]
  27.  
  28.             [uPLOADER:GeNeRaTioN      ][oF:[+] PRODIGY '95 [+]]
  29.                [uPLOAD tIME:13:52:59][uPLOAD dATE:03-Jan-95]
  30.  
  31. _ ___                  \ _
  32.   ___|__________/\______\//\________________________________________________ _
  33.   \___   /  ___/  \_____\//\______________      /\   ______/  _______/  ___ _
  34.      | _/   \ _    \_   \/     |   ___)_/_  ___/_/_  ___)_\______   \______
  35.      | \     \/     /   ||     |   \      | \      | \          /    /    /
  36.  _ __|  \__________/____||     |____      |__      |__         _____/    ___ _
  37.      `----'              `-----'   `------' `------' `---------'  `------'
  38.  
  39.  
  40.  
  41.  
  42.   «------------------[ eLITE gUYS wILL gET iNVITED hERE ]------------------»
  43.         .         .        .            .    :   ·    .
  44.    ____/¦__   ___/¦____ __/¦___________/¦__  ¦   ¦___/¦__         !
  45.    _ ____  \__\____  _//  _____\_________  \ |   | ____  \__     _:/\__
  46.     /·  |____//·  |   \\_____ ·\|   |   |  \\|   |/·  |____/     \ Oo /
  47.    //   |    \    |    \   l   \\   |   |   ·\_  //   |    \     /_--_\
  48.    \__________\________/________/___j___j     /  \__________\     :\/
  49.    -------------------------------------l____/   :-----------     ¡
  50.                                              ·   ·
  51.                     .     :   ·    .           .         .        .
  52.     !        _ ____/¦__   ¦   ¦____¦\____ ____/¦__   ___/¦____ __/¦_____ __
  53.    _:/\__    _ _ ____  \__|   |______   \ _ ____  \__\_  |  _//  _____ __ _
  54.    \ Oo /       /·  |____/|   |/· __  __/  /·  |____//·  |   \\_____ ·\
  55.    /_--_\      //   |    \|   //   |    \_//   |    \    l    \   l   \\
  56.     :\/        \__________\   \____j     /\__________\________/________/
  57.     ¡          -----------·   :----l____/-------------------------------
  58.                           ·   ·
  59.      <*> pRODIGY gHQ <*> nEUTRON wHQ <*> iLLUSION eHQ <*> dYNAMIX gHQ <*>
  60.  
  61.               Upload Date: [01-03-95] «» Upload Time: [07:18:16]
  62.  
  63.   «-------------------[ aSK eLITE fOR SYS-PW & NUMBA ! ]-------------------»
  64.  
  65.                     .__ _                                            r      
  66.                     :   __tHIS fILE wAS D/L fROM                     I      
  67.                  _ _02-Jan-95_________________________:              N      
  68.                    _|   \/                            |              G      
  69.                    \/       T¾R¾S¾I LEADER H¾Q     \\ ²  tRISTAR & rED      
  70.                     ­                               \ ­          sECTOR     
  71.     ö   .           |_/\________/\__.___   _/\_______ |              W      
  72.      /\             |\    ._    \   ­   \  \     ____)²             iNC.    
  73.    . \/\------------|/    |/____/        \ /     __)__!---------------.     
  74.      |\/            /     ²   /     |     \           \   4nODEZ      |     
  75.      |              \_____|   \_____²_____/___________/               !_    
  76.      |ö             |                                 |              /_/\   
  77.      |  _/\__.___   !/\_._/\________/\________/\______!  _/\______   \_\/   
  78.      |  \    ­   \  \___!\    ._    \   ._    \    ____) \    .   \   |     
  79.      00:13:09     \ /   |/    |/    /   |/    /    __)__ /    |    \_/¹     
  80.        /     |     \    |     /    /    /    /          \     |     \       
  81.        \_____²_____/____²_________/_________/___________/_____²_____/ö2Fö   
  82.                     ²                                 ²                     
  83.                    _!/\__                             |__                   
  84.                    \ Oo /   +49  p¾R¾I¾V¾A¾T¾E¾!   ___| /                   
  85.    eLITE gUYS      /_--_\                          \  //                    
  86.     wILL gET        ²\/      tHE hOLY mASTER iS     \/|                     
  87.   iNVITED hERE      !              mClOUD             ²                     
  88.                     ²  aND hIS hELPING hAND iS mARIO  :                     
  89.                     :                                                       
  90.                     ¾   aSK fOR nUMBER aND sYSPW/nUP
  91.  
  92.  
  93. @BEGIN_FILE_ID.DIZFREQUENTLY ASKED QUESTIONS ABOUT `C`
  94. -German Edition-
  95. 4-10
  96. @END_FILE_ID.DIZ
  97. /Teil 4/
  98.  
  99.              2.  "Stringizing"
  100.  
  101.                  Ein  weiteres  Problem   der   K&R-Preprozessoren  waren
  102.                  Makro-Expansionen zu Strings:
  103.  
  104.                       #define STRING(a)   "a"  /* K&R */
  105.  
  106.                       char s1[] = STRING(Hallo);
  107.  
  108.                  Die   meisten   K&R-Preprozessoren   (aber  nicht  alle)
  109.                  expandieren dies zu
  110.  
  111.                       char s1[] = "Hallo";
  112.  
  113.                  Einige liefern
  114.  
  115.                       char s1[] = "a";
  116.  
  117.                  Mit einem ANSI-Preprozessor schreibt man
  118.  
  119.                       #define STRING(a)   #a   /* ANSI */
  120.                       #define NOSTRING(a) "a"
  121.  
  122.                       char s1[] = STRING(Huhu);
  123.                       char s2[] = NOSTRING(Hallo);
  124.  
  125.                  Dies wird zu
  126.  
  127.                       char s1[] = "Huhu";
  128.                       char s2[] = "a";
  129.  
  130.              3.  "Charizing"
  131.  
  132.                  Ähnlich  wie bei  "Stringizing"  ersetzten  einige  K&R-
  133.                  Preprozessoren   Argumente   innerhalb    von   Zeichen-
  134.                  konstanten:
  135.  
  136.                       #define CHAR(a)     'a'  /* K&R */
  137.                                    Preprozessor                        19
  138.           ---------------------------------------------------------------
  139.  
  140.  
  141.                       char c1 = CHAR(x);
  142.  
  143.                  Dies wird von einigen K&R-Preprozessoren zu
  144.  
  145.                       char c1 = 'x';
  146.  
  147.                  expandiert.  Es  gibt  keine  direkte  Entsprechung  für
  148.                  diesen Mechanismus (er ist  auch  ziemlich  unsinnig) in
  149.                  ANSI. Obiges würde man in  ANSI  C  wie  folgt schreiben
  150.                  (oder es direkt lassen):
  151.  
  152.                       #define CHAR(a)     a    /* ANSI */
  153.  
  154.                       char c2 = CHAR('x');
  155.  
  156.              4.  Null-Operation
  157.  
  158.                  Ein ANSI Preprozessor kennt  eine  leere  Operation: Ein
  159.                  einzelnes '#' in einer Zeile.
  160.  
  161.              5.  "Rescanning"
  162.  
  163.                  Ein  ANSI-Preprozessor  arbeitet  prinzipiell anders als
  164.                  ein K&R-Preprozessor. Wird ein Makro irgendwo verwendet,
  165.                  werden  zuerst  ev. vorhandene  Aktual-Parameter  expan-
  166.                  diert,  dann werden sie eingesetzt. Das Ergebnis  dieses
  167.                  Ersatzes wird wieder  auf gültige Makros untersucht (das
  168.                  sog.  Rescanning).  Entsprechende Makros  werden  weiter
  169.                  ersetzt.  Ausgenommen  davon  ist der ursprüngliche Name
  170.                  des zu ersetzenden Makros; damit wird  jegliche  Art von
  171.                  von Rekursion vermieden.
  172.  
  173.                  Ein K&R-Preprozessor geht hier wesentlich  einfacher vor
  174.                  (1:1 Textersatz) und fällt z.B.  bei  folgendem  auf die
  175.                  Nase:
  176.  
  177.                       #define MACRO(x) MACRO(x)   /* K&R */
  178.  
  179.                       MACRO(1);            /* Bummmmm... */
  180.  
  181.                  Ein ANSI-Preprozessor hingegen liefert:
  182.  
  183.                       #define MACRO(x) MACRO(x)   /* ANSI */
  184.  
  185.                       MACRO(1);    /* wird zu "MACRO(1);" */
  186.  
  187.              6.  #pragma
  188.  
  189.                  Das '#pragma'-Direktiv gibt  es  nur in ANSI C. Es dient
  190.                  zur (nicht portablen)  Einstellung  von Compileroptionen
  191.                  u.ä.  Da  das Verhalten eines  Compilers  bei  '#pragma'
  192.                  völlig  im Belieben des Compilerbauers liegt,  starteten
  193.                  erste  Versionen des  GNU-Compiler  beim  Auffinden  von
  194.                  '#pragma' das Spiel Nethack...
  195.           20                         Preprozessor
  196.           ---------------------------------------------------------------
  197.  
  198.  
  199.              7.  #error
  200.  
  201.                  Auch das '#error' Kommando  findet  sich  nur  bei ANSI-
  202.                  Preprozessoren. Es  beendet  den  Compilerlauf  und gibt
  203.                  eine Meldung aus.
  204.  
  205.              8.  defined()
  206.  
  207.                  Der 'defined()'-Operator (und einige andere Operationen)
  208.                  gibt   es   wohldefiniert   nur  in  ANSI C.  Allerdings
  209.                  unterstützen   auch   viele   K&R-Preprozessoren   diese
  210.                  Operationen.
  211.  
  212.              9.  "Source file inclusion"
  213.  
  214.                  Ein ANSI-Preprozessor erlaubt folgendes:
  215.  
  216.                       #define FILENAME <incl.h>
  217.  
  218.                       #include FILENAME
  219.  
  220.                  (Achtung:  Viele  sog.  ANSI-Preprozessoren fallen dabei
  221.                  trotzdem auf die Nase...)
  222.  
  223.             10.  __LINE__, __FILE__, __DATE__, __TIME__, __STDC__
  224.  
  225.                  Ein   ANSI-Preprozessor   besitzt   obige  vordefinierte
  226.                  Makros.  Besonders  __STDC__  ist  interessant,  da  das
  227.                  Vorhandensein  von  __STDC__ bedeutet, daß  es  sich  um
  228.                  ANSI C handelt:
  229.  
  230.                       #ifdef __STDC__
  231.                       #define STRING(a)   #a
  232.                       #else
  233.                       #define STRING(a)   "a"
  234.                       #endif
  235.  
  236.             11.  "Trigraphs"
  237.  
  238.                  Trigraphs sind eine ganz ekelhafte Sache  in  ANSI C. Es
  239.                  sind   Drei-Zeichen-Ersatzdarstellungen   für   'Sonder-
  240.                  zeichen', von denen das  ANSI-Komitee  glaubte,  daß man
  241.                  sie  nicht in jedem (gängigen) Zeichensatz findet.  Tri-
  242.                  graphs werden noch vor jeglicher Preprozessor-Aktion wie
  243.                  folgt ersetzt:
  244.  
  245.                       ??=  ->   #
  246.                       ??(  ->   [
  247.                       ??/  ->   \
  248.                       ??)  ->   ]
  249.                       ??'  ->   ^
  250.                       ??<  ->   {
  251.                       ??!  ->   |
  252.                       ??>  ->   }
  253.                       ??-  ->   ~
  254.                                    Preprozessor                        21
  255.           ---------------------------------------------------------------
  256.  
  257.  
  258.                  Mit Trigraphs geschriebener Sourcecode sieht grausam aus
  259.                  (von C ist nichts mehr  zu erkennen). Daher kann man von
  260.                  der Verwendung von Trigraphs nur abraten!
  261.  
  262.                       ??=include <stdio.h>
  263.  
  264.                       int main(void) ??<
  265.                            char text??(??) = "Ein Text??/n";
  266.                            char *p = text;
  267.  
  268.                            while(*p) ??<
  269.                                 putchar(*p++);
  270.                            ??>
  271.  
  272.                            return 0;
  273.                       ??>
  274.  
  275.             12.  Makro-Argumente
  276.  
  277.                  Ein ANSI-Preprozessor legt  Wert darauf, daß bei Verwen-
  278.                  dung  eines  Makros  genau  so viele Argumente übergeben
  279.                  werden,  wie in der Makrodefinition angegeben. Ein  K&R-
  280.                  Preprozessor überprüft das nicht:
  281.  
  282.                       /* K&R */
  283.                       #define ERROR(x) fprintf(stderr, x)
  284.  
  285.                       /* legal in K&R */
  286.                       ERROR("No file %s\n", fn);
  287.  
  288.                  Bei  obigem  Aufruf  von  ERROR() würde ein ANSI-Prepro-
  289.                  zessor meckern.  Im  Prinzip  ist  die  Überprüfung  der
  290.                  Anzahl der Parameter eine sinnvolle Sache; der Fluch der
  291.                  bösen ANSI-Tat ist jedoch,  daß  sich  für  obiges Makro
  292.                  kein ANSI-Equivalent angeben läßt. Man muß wirklich eine
  293.                  Funktion  mit variabler Anzahl von Argumenten  schreiben
  294.                  (siehe Q4.1). Um diesen Nachteil zu überwinden, besitzen
  295.                  einige ANSI-Preprozessoren nichtstandardisierte Erweite-
  296.                  rungen:
  297.  
  298.                  So  gibt  es  einige  Preprozessoren,  die  -  wenn  die
  299.                  Argumente mit '((...))' statt '(..)' geklammert werden -
  300.                  keine  Überprüfung  der  Argumentanzahl durchführen. Das
  301.                  zusätzliche Klammerpaar wird  bei  diesen Preprozessoren
  302.                  nicht in den expandierten Text eingesetzt.
  303.  
  304.                       /* unstandardisierte Erweiterung */
  305.                       #define ERROR(x) fprintf(stderr, x)
  306.  
  307.                       /* zusaetzliche Klammern! */
  308.                       ERROR(("No file %s\n", fn));
  309.  
  310.                  Ein echter ANSI-Preprozessor würde bei obigen Aufruf von
  311.                  ERROR() zwar auch nur  ein  Argument  zählen, allerdings
  312.                  gehört  das zusätzliche  Klammerpaar  zum  Argument  und
  313.                  würde mit in den expandierten Text eingesetzt.
  314.           22                         Preprozessor
  315.           ---------------------------------------------------------------
  316.  
  317.  
  318.                  Der  weit verbreitete GNU C-Compiler verwendet  hingegen
  319.                  eine  Erweiterung  ähnlich  den  drei  Punkten  bei  der
  320.                  Programmierung  von Funktionen mit variabler Anzahl  von
  321.                  Argumenten:
  322.  
  323.                       /* GNU Preprozessor */
  324.                       #define ERROR(f, a...) fprintf(stderr, f, ## a)
  325.  
  326.                       /* Aufruf wie eine normale "stdargs"-Funktion */
  327.                       ERROR("No file %s\n", fn);
  328.  
  329.                  Eine  Syntax, die  von  einem  echten  ANSI-Preprozessor
  330.                  nicht verstanden würde.                             (tw)
  331.  
  332.  
  333.           Q2.2  Was soll die "übertriebene" Klammerung bei Makro-
  334.                 Definitionen?
  335.  
  336.  
  337.           Sie ist nicht übertrieben. Angenommen, ein Makro wird statt
  338.  
  339.                #define   SUM1(a, b)          ((a) + (b))
  340.  
  341.           als
  342.  
  343.                #define   SUM2(a, b)          a + b
  344.  
  345.           definiert. Wenn dann letzteres z.B. wie folgt verwendet wird
  346.  
  347.                SUM2(2, 3) * 4
  348.  
  349.           expandiert der Preprozessor das zu
  350.  
  351.                2 + 3 * 4
  352.  
  353.           Das Ergebnis ist 24, erwarten würde man allerdings 20. Daher im
  354.           ersten Makro die äußeren Klammern.
  355.  
  356.           Auch die Klammern um  die  Argumente a und b sind aus ähnlichen
  357.           Gründen sinnvoll. Wenn diese  Klammern  nicht  da wären und man
  358.           setzt z.B. für a '3' und für b '1 << 4' ein, würde man
  359.  
  360.                3 + 1 << 4
  361.  
  362.           erhalten. '+' besitzt einen  größeren  Vorrang  als  '<<', also
  363.           wird der Ausdruck als
  364.  
  365.                (3 + 1) << 4
  366.  
  367.           ausgewertet (Ergebnis 64). Mit den Klammern um a und b im Makro
  368.           erhält man wie erwartet
  369.  
  370.                (3) + (1 << 4)
  371.  
  372.           Das Ergebnis ist 19.
  373.  
  374.           Guter Programmierstil zeichnet sich u.a. dadurch  aus,  daß man
  375.           alle Makros sauber und bis zum Exzeß klammert.             (tw)
  376.                      Deklarationen, Definitionen, Prototypen           23
  377.           ---------------------------------------------------------------
  378.  
  379.  
  380.                                      Kapitel 3
  381.  
  382.                       Deklarationen, Definitionen, Prototypen
  383.  
  384.  
  385.           Q3.1  Was ist der Unterschied zwischen "Definition" und
  386.                 "Deklaration"?
  387.  
  388.  
  389.           Bei  der  Definition  wird  ein  Objekt  erzeugt,   d.h.  Name,
  390.           Datentyp, Speicherklasse und Sichtbarkeit werden festgelegt, es
  391.           wird Speicher zugewiesen, und das neue  Objekt  wird möglicher-
  392.           weise initialisiert.
  393.  
  394.           Beispiele:
  395.  
  396.                int i;
  397.                const int Escape = 0x1b;
  398.                FILE *fp;
  399.                double (*eval)(const char *expr);
  400.                const volatile unsigned long *const sys_timer =
  401.                                   (const volatile unsigned long*)0xabcd0;
  402.                char message[] = "press any key";
  403.                double square(double x) { return x*x; }
  404.  
  405.           Eine Deklaration ist prinzipiell dasselbe, d.h. sie macht einen
  406.           Namen mit seinem Datentyp bekannt, nur  daß  kein Speicherplatz
  407.           zugewiesen  wird  und  auch  keine Initialisierung möglich ist.
  408.           Während eine Definition also sagt "Erzeuge das Objekt sowieso",
  409.           sagt eine Deklaration "Es gibt irgendwo ein Objekt sowieso". Wo
  410.           das Objekt definiert wird, ist dabei egal - es kann  eine Zeile
  411.           danach definiert werden, oder eine Zeile  davor,  oder irgendwo
  412.           in demselben oder in einem anderen Modul. Wenn das Objekt nicht
  413.           benutzt  wird,  kann  man  es  auch  deklarieren,  ohne daß  es
  414.           irgendwo definiert wird. Eine  Deklaration  ist  also  nur eine
  415.           Information für den  Compiler, aber nichts, was "codeerzeugend"
  416.           wirkt. Um von einer Definition unterschieden werden  zu können,
  417.           werden Deklarationen mit 'extern' markiert.  Nur bei Funktions-
  418.           deklarationen,  auf  die  keine Funktionsdefinition folgt, kann
  419.           das 'extern' entfallen.
  420.  
  421.           Beispiele:
  422.  
  423.                extern int errno;
  424.                extern const char *message;
  425.                extern char *strcpy(char *dest, const char *src);
  426.                void f(int);
  427.           24           Deklarationen, Definitionen, Prototypen
  428.           ---------------------------------------------------------------
  429.  
  430.  
  431.           Objekte können beliebig oft deklariert werden, solange sich die
  432.           Deklaration nicht ändert:
  433.  
  434.                /* erlaubt */
  435.                extern int errno;
  436.                extern int errno;
  437.  
  438.                /* erlaubt */
  439.                extern void f(int i);
  440.                extern void f(int j);
  441.  
  442.                /* nicht erlaubt */
  443.                extern int i;
  444.                extern long i;
  445.  
  446.                /* nicht erlaubt */
  447.                extern char *message;
  448.                extern char message[];
  449.  
  450.           Jedes Objekt,  auf das ein Programm zugreift, muß vorher dekla-
  451.           riert worden sein. Die einzige Ausnahme  sind  Funktionen; wenn
  452.           eine Funktion aufgerufen wird, ohne daß  sie  vorher deklariert
  453.           wurde, nimmt der Compiler automatisch die Deklaration
  454.  
  455.                extern int fct();
  456.  
  457.           an (d.h. er geht davon aus, daß die Funktion ein int zurückgibt
  458.           und daß sie eine feste, aber unbekannte Argumentenliste hat).
  459.  
  460.           Eine  Definition enthält immer auch eine Deklaration,  weswegen
  461.           in dem (Normal-) Fall, daß ein Objekt vor seiner ersten Verwen-
  462.           dung  definiert  wird,  keine  separate  Deklaration  notwendig
  463.           ist.                                                       (wr)
  464.  
  465. /Ende von Teil 4/
  466.  
  467. Keep hacking
  468. Wolfram
  469.  
  470.  
  471.  
  472.  
  473.   «------------------[ eLITE gUYS wILL gET iNVITED hERE ]------------------»
  474.         .         .        .            .    :   ·    .
  475.    ____/¦__   ___/¦____ __/¦___________/¦__  ¦   ¦___/¦__         !
  476.    _ ____  \__\____  _//  _____\_________  \ |   | ____  \__     _:/\__
  477.     /·  |____//·  |   \\_____ ·\|   |   |  \\|   |/·  |____/     \ Oo /
  478.    //   |    \    |    \   l   \\   |   |   ·\_  //   |    \     /_--_\
  479.    \__________\________/________/___j___j     /  \__________\     :\/
  480.    -------------------------------------l____/   :-----------     ¡
  481.                                              ·   ·
  482.                     .     :   ·    .           .         .        .
  483.     !        _ ____/¦__   ¦   ¦____¦\____ ____/¦__   ___/¦____ __/¦_____ __
  484.    _:/\__    _ _ ____  \__|   |______   \ _ ____  \__\_  |  _//  _____ __ _
  485.    \ Oo /       /·  |____/|   |/· __  __/  /·  |____//·  |   \\_____ ·\
  486.    /_--_\      //   |    \|   //   |    \_//   |    \    l    \   l   \\
  487.     :\/        \__________\   \____j     /\__________\________/________/
  488.     ¡          -----------·   :----l____/-------------------------------
  489.                           ·   ·
  490.      <*> pRODIGY gHQ <*> nEUTRON wHQ <*> iLLUSION eHQ <*> dYNAMIX gHQ <*>
  491.  
  492.               Upload Date: [01-03-95] «» Upload Time: [07:18:16]
  493.  
  494.   «-------------------[ aSK eLITE fOR SYS-PW & NUMBA ! ]-------------------»
  495.  
  496.                                                           [-AquaAdder v1.0-]
  497.  
  498.  
  499.  
  500.  
  501.  
  502.    
  503.                             -sLiME!^bP·LEADER^mTH!
  504.                          mOGUe!^aC! pRIMUS!/bP·lEADER
  505.                       wHIRLWIND/mTH! MR.VAIN/BNZ^sXi^aC!
  506.  
  507. -- --- ---- pHUKKIN' fAST aMIGA ^ wORLD'S lARGEST cHIPTUNE aREA ---- --- --
  508.       ____
  509.   ___|    |_____________  __________________   ____________________________
  510. _/  _|    |   ._________\/__________  \   _/___\______  \   _____/   _____/
  511. \   \.    |   l/    /   \/    |  _____/_  l     /  _____/\____  _/\____  \_
  512.  \___|    |________/____||-Mo!|________________/_______\ _______\ ________/
  513.      l____|              l____|                         \/       \/
  514.  
  515.     -- --- ---- aMI-eX fREE-lEECH ^ bIG aSCII bASE © bY aC! ---- --- --
  516.  
  517.    -- mYTH! gHQ - -÷- - bIRDHOUSE pROJECTS! eHQ - -÷- - aRT-cORE! eHQ --
  518.  
  519. _______________          _____      _____   _________       ___________________
  520. \.            /________ |.   /_____:o    | /.        \/|___/_       \         /
  521.  \___   _____/|.   /   \||  /|.    |:    |//   ______/·|.   / ______ \    ___/
  522.    /.   /_/·  ||  /     \:  \||    |·    |/   /   \ \/ ||  /_______ \/+    /
  523.   //  ____/   ||  \   \  \   \:   ¯¯¯    |   /    / /  ||  \ /·\  /  \  __/_
  524.  //   / //    |+   \   \      \  \___/   |   \___/ /   |·   \/  \/   /      /
  525. /·   /  \\         /    \     /    |:    |        /         /       /      /
  526. \___/    \________/_____|\___/:    |_____|_______/\________/_______/______/
  527.                              l_____|·MBB·
  528.  
  529.