#include <exec/types.h>
#include <stdio.h>
#include <graphics/gfx.h>
#include <exec/exec.h>
#include <libraries/dos.h>
#include <graphics/gfxbase.h>

struct BitMap bitmap1;
struct GfxBase *GfxBase;

extern void *AllocRaster(), *AllocMem(), *OpenLibrary();

UWORD *plane;
UWORD *ziel;
UWORD *ziel2;
long File;

int Zahl=0,i=0,j=0;

/***************** HAUPTPROGRAMM *************************************/
main()
{

  GfxBase = (struct GfxBase*)OpenLibrary("graphics.library",0L);

   InitBitMap(&bitmap1,1L,320L,800L);
        bitmap1.Planes[0] = (PLANEPTR)AllocRaster(320L,800L);
#asm
        move.l d0,_plane
#endasm
        BltClear(bitmap1.Planes[0], RASSIZE(320L,800L), 1L);

ziel=AllocMem(10000,MEMF_CHIP);
ziel2=AllocMem(10000,MEMF_CHIP);

File=Open("vd0:picture2",MODE_OLDFILE);
Read(File,(UWORD *)plane,32000);
Close(File);

File=Open("vd0:SPRITES",MODE_NEWFILE);

FastSprite(0,0,16);
FastSprite(16,0,16);
FastSprite(32,0,16);
FastSprite(48,0,16);
FastSprite(64,0,16);
FastSprite(80,0,16); 
FastSprite(96,0,16);
FastSprite(112,0,16);
FastSprite(128,0,16);

/*FastSprite(144,0,16);
FastSprite(160,0,16);
FastSprite(176,0,16);

FastSprite(192,0,16);
FastSprite(208,0,16);
FastSprite(224,0,16);
FastSprite(240,0,16);*/

Close(File);
}



FastSprite(x1,y1,h1)
UWORD x1,y1,h1;
{
int word1;

word1=(x1/8);

#asm
	move.l _plane,a2
	move.l _ziel,a3
	add.l -4(a5),a2
	move.w #0,(a3)
	add.l #2,a3
	move.w #0,(a3)
	add.l #2,a3
#endasm

for(i=0; i<16; i++)
  {
#asm
	move.w (a2),(a3)
	add.l #40,a2
	add.l #2,a3
	move.w (a2),(a3)
	add.l #120,a2
	add.l #2,a3
	move.w #0,(a3)
	move.w #0,2(a3)
#endasm
  }
 
Write(File,(UWORD *)ziel,((h1*2)+4)*2);

#asm
        move.l #0,a2
        move.l #0,a3
	move.l _plane,a2
	move.l _ziel2,a3
	add.l -4(a5),a2
	add.l #80,a2
	move.w #0,(a3)
	add.l #2,a3
	move.w #0,(a3)
	add.l #2,a3
#endasm

for(j=0; j<16; j++)
  {
  Arsch();
/*  puts("Es geht!"); */
  }

Write(File,(UWORD *)ziel2,((h1*2)+4)*2);
}

Arsch()
{
#asm
	move.w (a2),(a3)
	add.l #40,a2
	add.l #2,a3
	move.w (a2),(a3)
	add.l #120,a2
	add.l #2,a3
	move.w #0,(a3)
	move.w #0,2(a3)
#endasm
}

