
/*
\\    EHB.c - Extra-Halfbright Demo
*/
#include "TOOL.h"

#define VP    &(Screen->ViewPort)
#define RP    &(Screen->RastPort)

struct Screen *Screen;

VOID error(meldung)
    STRPTR meldung;
{
    if(meldung) printf("ERROR: %s",meldung); /* Fehlermeldung */
    if(Screen)  CloseScreen(Screen);      /* Screen schließen */
    CloseLib();                        /* Libraries schließen */
    exit(0);
}

VOID main()
{
    REGISTER COUNT i,j,ypos=256;

    if(OpenLib()){                               /* Libraries öffnen */
        error("Kann Libraries nicht öffnen!\n");    /* Fehlermeldung */
    }
    if(!(Screen=GetScreen(ypos,6,EXTRA_HALFBRITE,"EHB-SCREEN Demo"))){
        error("Kann Screen nicht öffnen !\n");
    }
    for(i=0,j=0;i<16;i++,j+=2){              /* 32 Farben definieren */
            SetRGB4(VP,   i,j,j+1,i);
            SetRGB4(VP,16+i,i,i/2,j);
    }
    for(i=0;i<32;i++){
        SetAPen(RP,i);           /* Zeichenfarben 0 bis 31 festlegen */
        RectFill(RP,10*i, 12,10*i+9,255);       /* Rechteck zeichnen */
        SetAPen(RP,i+32);   /* Zeichenfarben 32 bis 63 (!) festlegen */
        RectFill(RP,10*i,100,10*i+9,155);
    }
    while(ypos-->=0) MoveScreen(Screen,0,-1);  /* Screen verschieben */
    Delay(250);                                      /* etwas warten */
    error(0);                     /* Programmende ohne Fehlermeldung */
}
