home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Frozen Fish 1: Amiga
/
FrozenFish-Apr94.iso
/
bbs
/
cbm
/
nduk-v37.lha
/
V37
/
include
/
hardware
/
blit.h
< prev
next >
Wrap
C/C++ Source or Header
|
1991-11-27
|
2KB
|
105 lines
#ifndef HARDWARE_BLIT_H
#define HARDWARE_BLIT_H
/*
** $Filename: hardware/blit.h $
** $Release: 2.04 Includes, V37.4 $
** $Revision: 36.3 $
** $Date: 90/11/05 $
**
** Defines for direct hardware use of the blitter.
**
** (C) Copyright 1985-1991 Commodore-Amiga, Inc.
** All Rights Reserved
*/
#define HSIZEBITS 6
#define VSIZEBITS 16-HSIZEBITS
#define HSIZEMASK 0x3f /* 2^6 -- 1 */
#define VSIZEMASK 0x3FF /* 2^10 - 1 */
/* all agnii support horizontal blit of at least 1024 bits (128 bytes) wide */
/* some agnii support horizontal blit of up to 32768 bits (4096 bytes) wide */
#ifndef NO_BIG_BLITS
#define MINBYTESPERROW 128
#define MAXBYTESPERROW 4096
#else
#define MAXBYTESPERROW 128
#endif
/* definitions for blitter control register 0 */
#define ABC 0x80
#define ABNC 0x40
#define ANBC 0x20
#define ANBNC 0x10
#define NABC 0x8
#define NABNC 0x4
#define NANBC 0x2
#define NANBNC 0x1
/* some commonly used operations */
#define A_OR_B ABC|ANBC|NABC | ABNC|ANBNC|NABNC
#define A_OR_C ABC|NABC|ABNC | ANBC|NANBC|ANBNC
#define A_XOR_C NABC|ABNC | NANBC|ANBNC
#define A_TO_D ABC|ANBC|ABNC|ANBNC
#define BC0B_DEST 8
#define BC0B_SRCC 9
#define BC0B_SRCB 10
#define BC0B_SRCA 11
#define BC0F_DEST 0x100
#define BC0F_SRCC 0x200
#define BC0F_SRCB 0x400
#define BC0F_SRCA 0x800
#define BC1F_DESC 2 /* blitter descend direction */
#define DEST 0x100
#define SRCC 0x200
#define SRCB 0x400
#define SRCA 0x800
#define ASHIFTSHIFT 12 /* bits to right align ashift value */
#define BSHIFTSHIFT 12 /* bits to right align bshift value */
/* definations for blitter control register 1 */
#define LINEMODE 0x1
#define FILL_OR 0x8
#define FILL_XOR 0x10
#define FILL_CARRYIN 0x4
#define ONEDOT 0x2 /* one dot per horizontal line */
#define OVFLAG 0x20
#define SIGNFLAG 0x40
#define BLITREVERSE 0x2
#define SUD 0x10
#define SUL 0x8
#define AUL 0x4
#define OCTANT8 24
#define OCTANT7 4
#define OCTANT6 12
#define OCTANT5 28
#define OCTANT4 20
#define OCTANT3 8
#define OCTANT2 0
#define OCTANT1 16
/* stuff for blit qeuer */
struct bltnode
{
struct bltnode *n;
int (*function)();
char stat;
short blitsize;
short beamsync;
int (*cleanup)();
};
/* defined bits for bltstat */
#define CLEANUP 0x40
#define CLEANME CLEANUP
#endif /* HARDWARE_BLIT_H */