
/* Program otworzy dwa ekrany, jeden (low-resolution 32 kolory) na gó- */
/* rze, i drugi (high-resolution 16 kolorów)trochė niūej. Po 10 sekun- */
/* dach ekran low-resolution zostanie przesuniėty w dóī o 75 linii.    */
/* Po kolejnych 10 sekundach zostanie wysuniėty przed wszystkie inne   */
/* ekrany. 10 sekund póśniej znowu zostanie przesuniėty 75 linii w dóī */
/* Program poczeka teraz 10 sekund zanim zamknie wszystkie ekrany.     */

#include <intuition/intuition.h>



struct IntuitionBase *IntuitionBase;



/* Definicja dwóch wskaśników do struktury Screen */
struct Screen *my_screen1;
struct Screen *my_screen2;

/* Definicja struktury NewScreen dla ekranu 1 */
struct NewScreen my_new_screen1=
{
  0,            /* LeftEdge  Zawsze ustawione na 0 */
  0,            /* TopEdge   Górna czėōź ekranu */
  320,          /* Width     Ekran low-resolution */
  100,          /* Height    */
  5,            /* Depth     32 kolory */
  0,            /* DetailPen Tekst pisany bėdzie kolorem z rejestru 0 */
  1,            /* BlockPen  Bloki rysowane bėdā kolorem z rejestru 1 */
  NULL,         /* ViewModes Ūadnych szczególnych trybów (Low-res, Non-Interlaced) */
  CUSTOMSCREEN, /* Type      Ekran Custom screen */
  NULL,         /* Font      Standardowy font */
  "MY SCREEN1", /* Title     Tytuī ekranu */
  NULL,         /* Gadget    W 1.3 musi byź NULL */
  NULL          /* BitMap    Ūadnych specjalnych bitmap */
};

/* Definicja struktury NewScreen dla ekranu 2 */
struct NewScreen my_new_screen2=
{
  0,
  105,
  640,
  95,
  4,            /* Depth     16 kolorów */
  0,
  1,
  HIRES,        /* ViewModes High-resolution, Non-Interlaced */
  CUSTOMSCREEN,
  NULL,
  "MY SCREEN2",
  NULL,
  NULL
};



main()
{
  /* Otwórz bibliotekė intuition.library */
  IntuitionBase = (struct IntuitionBase *)
    OpenLibrary( "intuition.library", 0 );

  if( IntuitionBase == NULL )
    exit(); /* Nie moūna otworzyź intuition.library! */



  /* Próba otwarcia pierwszego ekranu */
  my_screen1 = (struct Screen *) OpenScreen( &my_new_screen1 );

  /* Sprawdzenie poprawnoōci otwarcia */
  if(my_screen1 == NULL)
  {
    /* Bīād otwarcia ekranu pierwszego */

    /* Zamknij intuition.library */
    CloseLibrary( IntuitionBase );

    exit();
  }



  /* Próba otwarcia drugiego ekranu */
  my_screen2 = (struct Screen *) OpenScreen( &my_new_screen2 );

  /* Sprawdzenie poprawnoōci otwarcia */
  if(my_screen2 == NULL)
  {
    /* Bīād otwarcia ekranu drugiego */

    /* Zamkniėcie ekranu pierwszego */
    CloseScreen( my_screen1 );

    /* Zamknij intuition.library */
    CloseLibrary( IntuitionBase );

    exit();
  }



  /* Ekrany otwarte */

  /* Czekaj 10 sekund */
  Delay( 50 * 10);

  /* Przesuļ ekran low-resolution 75 linii w dóī */
  MoveScreen( my_screen1, 0, 75 );

  /* Czekaj 10 sekund */
  Delay( 50 * 10);

  /* Wysuļ ekran low-resolution przed inne ekrany */
  ScreenToFront( my_screen1 );

  /* Czekaj 10 sekund */
  Delay( 50 * 10);

  /* Przesuļ ponownie ekran low-resolution 75 linii w dóī */
  MoveScreen( my_screen1, 0, 75 );

  /* Czekaj 10 sekund */
  Delay( 50 * 10);


  /* Zawsze powinno zamykaź siė ekrany przed wyjōciem z programu */
  CloseScreen( my_screen2 );
  CloseScreen( my_screen1 );



  /* Zamkniėcie intuition.library */
  CloseLibrary( IntuitionBase );


}
