 /* 
  * UAE - The Un*x Amiga Emulator
  * 
  * Blitter emulation
  *
  * (c) 1995 Bernd Schmidt
  */

struct bltinfo {
    int blitzero;
    UWORD blitpreva,blitprevb,blitashift,blitbshift;
    UWORD bltadat,bltbdat,bltcdat,bltddat,bltafwm,bltalwm;
    UWORD vblitsize,hblitsize;
    WORD  bltamod,bltbmod,bltcmod,bltdmod;
};

extern enum blitter_states {
    BLT_done, BLT_init, BLT_read, BLT_work, BLT_write, BLT_next
} bltstate;

extern struct bltinfo blt_info;

extern UWORD bltsize, oldvblts;
extern UWORD bltcon0,bltcon1;
extern int blinea_shift;
extern ULONG bltapt,bltbpt,bltcpt,bltdpt;

extern void maybe_blit(void);
extern void blitter_handler(void);
extern void build_blitfilltable(void);
extern void do_blitter(void);

typedef void blitter_func(UBYTE *, UBYTE *, UBYTE *, UBYTE *, struct bltinfo *);

extern blitter_func *blitfunc_dofast[256];
extern blitter_func *blitfunc_dofast_desc[256];
