/***********************************************************************/
/* Oeffnen eines Screens                                               */
/*                                                                     */
/* fuer Markt&Technik von H. Knappe                                    */
/***********************************************************************/


#include <exec/types.h>
#include <intuition/intuition.h>

struct IntuitionBase *IntuitionBase;
struct GfxBase *GfxBase;

/* Nun wird die NewScreen-Struktur definiert                           */
struct NewScreen MyNewScreen=
{
 0,                     /* Koordinate der linken Ecke                  */
 0,                     /* Koordinate der oberen Ecke                  */
 640,                   /* Breite (high-resolution)                    */
 200,                   /* Höhe (non-interlace)                        */
 2,                     /* Tiefe (2 BitPlanes -> 16 Farben)            */
 0,1,                   /* DetailPen, BlockPen                         */
 HIRES,                 /* Anzeigemodus: high-resolution               */
 CUSTOMSCREEN,          /* Screentyp                                   */
 NULL,                  /* kein eigener Schriftsatz                    */
 "Mein erster Screen",  /* Name des Screens                            */
 NULL,                  /* keine ScreenGadgets                         */
 NULL                   /* keine CustomBitMap                          */
};



main()
{
 struct Screen *MyScreen;           /* Pointer auf die Screen-Struktur */
 long i;

 printf("Oeffnen eines neuen Screens...\n");

 /* Oeffnen des IntuitionLibrary. Wenn das Ergebnis  gleich  Null ist, */
 /* kann das IntuitionLibrary nicht geoeffnet werden und das  Programm */
 /* sollte abbrechen.                                                  */
 IntuitionBase=(struct IntuitionBase*) OpenLibrary("intuition.library",0);
 if(IntuitionBase==NULL)
 {
    printf("Intuition.library kann nicht geoeffnet werden!\n");
    exit(FALSE);
 }
 printf("Intuition.library offen -> ");

 /* Oeffnen des  GraphicLibrary.  Wenn das Ergebnis  gleich  Null ist, */
 /* kann das IntuitionLibrary nicht geoeffnet werden und das  Programm */
 /* sollte abbrechen.                                                  */
 GfxBase=(struct GfxBase*)OpenLibrary("graphics.library",0);
 if(GfxBase==NULL)
 {
    printf("Graphic.library kann nicht geoeffnet werden!\n");
    CloseLibrary(IntuitionBase);
    exit(FALSE);
 }
 printf("Graphic.library offen -> ");

 /* Oeffnen des Screens. Wenn das Ergebnis gleich  Null ist, konnte der */
 /* Screen nicht geoeffnet werden und das Programm sollte abbrechen!    */
 if((MyScreen=(struct Screen*)OpenScreen(&MyNewScreen))==NULL)
 {
    printf("Screen kann nicht geoeffnet werden!\n");
    CloseLibrary(GfxBase);
    CloseLibrary(IntuitionBase);
    exit(FALSE);
 }
 printf("Screen offen.\n");

 /* Warteschleife */
 for(i=1;i<=1000000;++i);

 /* Programm beenden. */
 CloseScreen(MyScreen);             /* Schliessen des Screens          */
 printf("Screen geschlossen.\n");
 exit(TRUE);
}
