/*
\\    SavePlane.c - Speicherbereiche mittels PutFile() sichern
*/
#include "TOOL.h"

error(Meldung)
    STRPTR Meldung;
{
    if(Meldung) printf("Fehler beim %s!\n",Meldung);
    CloseLib();
}

VOID main()
{
    struct Window *win;
    struct Screen *scr;
    UBYTE *plane,*buffer;
    SHORT sw,sh,ww,wh;
    LONG i,size;

    if(OpenLib()) error("Öffnen der Libs's");
    scr  =ACTIVE_SCREEN;
    plane=scr->RastPort.BitMap->Planes[0];
    sw   =scr->Width;
    sh   =scr->Height;
    win  =ACTIVE_WINDOW;
    ww   =win->Width;
    wh   =win->Height;
    if(PutFile("RAM:plane",plane,sw*sh/8)) error("Speichern");
    if((ww>50)&&(wh>50)){
        SizeWindow(win,-20,-20);
        MoveWindow(win,20,20);
    }
    if(!(buffer=GetFile("RAM:plane",&size))) error("Laden");
    for(i=0;i<size;i++) plane[i]=buffer[i];
    FreeFile(buffer,size);
    RefreshWindowFrame(win);
    error(0);
}

