/* mynostartup.c -- Beispiel der Benutzung von ARP ohne die üblichen 
 *                  Libraries zu öffnen.
 *
 * Copyright (c) 1987, Scott Ballantyne
 * Gebrauche und mißbrauche es wie es Dir gefällt.
 *
 * Übersetzung :
 * Manx:
 * cc nostartup.c
 * ln nostartup.o -la -lc       ; mit a.lib linken
 *
 * Lattice:
 * lc nostartup.c
 * blink lib:c.o nostartup.o to nostartup lib lib:a.lib lib:lc.lib lib:amiga.lib
 *
 * -+=SDB+=-
 */

/* Zusätzliche Ausgaben in main().
 * Gibt die Pointer auf GfxBase und IntuitionBase aus.
 * Thomas 
 */

/* Kommentare eingedeutscht. ( wasn Wort )
 * Peter
 */

#include <exec/types.h>

#include "libraries/arpbase.h"
#include "arpfunctions.h"
/* Diese beiden Files am besten im INCLUDE:-Ordner des Compilers ablegen.
 * Die #include-Anweisungen müssen dann angepasst werden.
 * z. B.:
   #include <arp/arpbase.h>
   #include <arp/arpfunctions.h>
 * wenn alle Headerfiles in INCLUDE:arp stehen.
 * Lattice-C-Benutzer dürfen 'arp_pragma.h' nicht vergessen.
 * In arpfunctions.h muß dann die include-Anweisung für
 * arp_pragma.h in <arp/arp_pragma.h> geändert werden.
 *
 * Thomas 
 */

struct ArpBase *OpenLibrary();
struct ArpBase *ArpBase;        /* Den Zeiger auf die Library deklarieren */

/* Nun können wir die Zeiger auf die INTUITION.LIBRARY und die 
 * GRAPHICS.LIBRARY fast umsonst bekommen.
 * Wenn man sie nicht braucht, ist es aber nicht unbedingt nötig !
 */

struct Library *IntuitionBase, *GfxBase;

/* Beispiel, wie ARP geöffnet wird
 */

VOID main()
{
        char    buffer[MaxInputBuf];

        if (!(ArpBase = OpenLibrary(ArpName, ArpVersion)) )
                exit(20);
        /* ARP wurde geöffnet, nun machen wir uns an die Zeiger für
         * IntuitionBase und GfxBase heran.
         */
        GfxBase = ArpBase->GfxBase;
        IntuitionBase = ArpBase->IntuiBase;

        /* ab hier geändert
         * printf vom Compiler, da Printf von ARP 
         * '%lx' nicht kennt. 
         */
        printf ( "\n Addresse von GfxBase       = %lx  Inhalt = %lx", GfxBase, *GfxBase ) ;
        printf ( "\n Addresse von IntuitionBase = %lx  Inhalt = %lx", IntuitionBase, *IntuitionBase ) ;
        /* Thomas 
         */

        Printf("\nType something: ");
        ReadLine(buffer);
        Printf("You typed \"%s\"\n", buffer);

        /* Dies ist die empfohlene Sequenz zum Beenden von Programmen unter
         * der Benutzung von ARP in C. Es ist besser, ArpExit() nicht zu
         * benutzen.
         */
        CloseLibrary(ArpBase);
        exit(0);
}
