1 #ifndef HARDWARE_BLIT_H
    2 #define HARDWARE_BLIT_H
    3 
    4 /*
    5 	blitter defines
    6 
    7 	Copyright © 2002 The MorphOS Development Team, All Rights Reserved.
    8 */
    9 
   10 #pragma pack(2)
   11 
   12 
   13 #define HSIZEBITS  6
   14 #define VSIZEBITS  (16 - HSIZEBITS)
   15 #define HSIZEMASK  0x3f
   16 #define VSIZEMASK  0x3FF
   17 
   18 
   19 #ifndef NO_BIG_BLITS
   20 # define MINBYTESPERROW  128
   21 # define MAXBYTESPERROW  4096
   22 #else
   23 # define MAXBYTESPERROW  128
   24 #endif
   25 
   26 
   27 #define ABC     0x80
   28 #define ABNC    0x40
   29 #define ANBC    0x20
   30 #define ANBNC   0x10
   31 #define NABC    0x8
   32 #define NABNC   0x4
   33 #define NANBC   0x2
   34 #define NANBNC  0x1
   35 
   36 #define A_OR_B   (ABC|ANBC|NABC|ABNC|ANBNC|NABNC)
   37 #define A_OR_C   (ABC|NABC|ABNC|ANBC|NANBC|ANBNC)
   38 #define A_XOR_C  (NABC|ABNC|NANBC|ANBNC)
   39 #define A_TO_D   (ABC|ANBC|ABNC|ANBNC)
   40 
   41 #define BC0B_DEST  8
   42 #define BC0B_SRCC  9
   43 #define BC0B_SRCB  10
   44 #define BC0B_SRCA  11
   45 #define BC0F_DEST  (1<<BC0B_DEST)
   46 #define BC0F_SRCC  (1<<BC0B_SRCC)
   47 #define BC0F_SRCB  (1<<BC0B_SRCB)
   48 #define BC0F_SRCA  (1<<BC0B_SRCA)
   49 
   50 #define BC1F_DESC  2
   51 
   52 #define DEST  BC0F_DEST
   53 #define SRCC  BC0F_SRCC
   54 #define SRCB  BC0F_SRCB
   55 #define SRCA  BC0F_SRCA
   56 
   57 #define ASHIFTSHIFT  12
   58 #define BSHIFTSHIFT  12
   59 
   60 
   61 #define LINEMODE      0x1
   62 #define FILL_OR       0x8
   63 #define FILL_XOR      0x10
   64 #define FILL_CARRYIN  0x4
   65 #define ONEDOT        0x2
   66 #define OVFLAG        0x20
   67 #define SIGNFLAG      0x40
   68 #define BLITREVERSE   0x2
   69 
   70 #define SUD  0x10
   71 #define SUL  0x8
   72 #define AUL  0x4
   73 
   74 #define OCTANT8  24
   75 #define OCTANT7  4
   76 #define OCTANT6  12
   77 #define OCTANT5  28
   78 #define OCTANT4  20
   79 #define OCTANT3  8
   80 #define OCTANT2  0
   81 #define OCTANT1  16
   82 
   83 
   84 struct bltnode
   85 {
   86 	struct bltnode  *n;
   87 	int            (*function)(void);
   88 	char             stat;
   89 	short            blitsize;
   90 	short            beamsync;
   91 	int            (*cleanup)(void);
   92 };
   93 
   94 
   95 #define CLEANUP  0x40
   96 #define CLEANME  CLEANUP
   97 
   98 
   99 #pragma pack()
  100 
  101 #endif /* HARDWARE_BLIT_H */