home *** CD-ROM | disk | FTP | other *** search
/ Amiga MA Magazine 1998 #6 / amigamamagazinepolishissue1998.iso / coders / jËzyki_programowania / ace_basic / ace / include / hardware / blit.h < prev    next >
C/C++ Source or Header  |  1977-12-31  |  3KB  |  119 lines

  1. #ifndef HARDWARE_BLIT_H
  2. #define HARDWARE_BLIT_H 1
  3. /*
  4. ** blit.h for ACE Basic
  5. **
  6. ** Note: Translated to ACE by ConvertC2ACE
  7. **       @ MapMeadow Software, Nils Sjoholm
  8. **
  9. **
  10. ** Date: 09/03/95
  11. **
  12. ** Note: Fixed a missing kludgefill in bltnode
  13. **       14-Oct-95      Nils Sjoholm
  14. **
  15. */
  16.  
  17. /*
  18. ** This are the StructPointer defines for blit.h
  19. */
  20. #ifndef bltnodePtr
  21. #define bltnodePtr ADDRESS
  22. #endif
  23. /*
  24. ** End of StructPointer defines for blit.h
  25. */
  26.  
  27.  
  28. #define HSIZEBITS 6
  29. #define VSIZEBITS 16-HSIZEBITS
  30. #define HSIZEMASK &H3f        /* 2^6 -- 1 */
  31. #define VSIZEMASK &H3FF       /* 2^10 - 1 */
  32.  
  33. /* all agnii support horizontal blit of at least 1024 bits (128 bytes) wide */
  34. /* some agnii support horizontal blit of up to 32768 bits (4096 bytes) wide */
  35.  
  36. #ifndef  NO_BIG_BLITS
  37. #define  MINBYTESPERROW 128
  38. #define  MAXBYTESPERROW 4096
  39. #else
  40. #define  MAXBYTESPERROW 128
  41. #endif
  42.  
  43. /* definitions for blitter control register 0 */
  44.  
  45. #define ABC    &H80
  46. #define ABNC   &H40
  47. #define ANBC   &H20
  48. #define ANBNC  &H10
  49. #define NABC   &H8
  50. #define NABNC  &H4
  51. #define NANBC  &H2
  52. #define NANBNC &H1
  53.  
  54. /* some commonly used operations */
  55. #define A_OR_B    ABC OR ANBC OR NABC OR ABNC OR ANBNC OR NABNC
  56. #define A_OR_C    ABC OR NABC OR ABNC OR ANBC OR NANBC OR ANBNC
  57. #define A_XOR_C   NABC OR ABNC OR NANBC OR ANBNC
  58. #define A_TO_D    ABC OR ANBC OR ABNC OR ANBNC
  59.  
  60. #define BC0B_DEST 8
  61. #define BC0B_SRCC 9
  62. #define BC0B_SRCB   10
  63. #define BC0B_SRCA 11
  64. #define BC0F_DEST &H100
  65. #define BC0F_SRCC &H200
  66. #define BC0F_SRCB &H400
  67. #define BC0F_SRCA &H800
  68.  
  69. #define BC1F_DESC   2         /* blitter descend direction */
  70.  
  71. #define DEST &H100
  72. #define SRCC &H200
  73. #define SRCB &H400
  74. #define SRCA &H800
  75.  
  76. #define ASHIFTSHIFT  12       /* bits to right align ashift value */
  77. #define BSHIFTSHIFT  12       /* bits to right align bshift value */
  78.  
  79. /* definations for blitter control register 1 */
  80. #define LINEMODE     &H1
  81. #define FILL_OR      &H8
  82. #define FILL_XOR     &H10
  83. #define FILL_CARRYIN &H4
  84. #define ONEDOT       &H2      /* one dot per horizontal line */
  85. #define OVFLAG       &H20
  86. #define SIGNFLAG     &H40
  87. #define BLITREVERSE  &H2
  88.  
  89. #define SUD      &H10
  90. #define SUL      &H8
  91. #define AUL      &H4
  92.  
  93. #define OCTANT8   24
  94. #define OCTANT7   4
  95. #define OCTANT6   12
  96. #define OCTANT5   28
  97. #define OCTANT4   20
  98. #define OCTANT3   8
  99. #define OCTANT2   0
  100. #define OCTANT1   16
  101.  
  102. /* stuff for blit qeuer */
  103. STRUCT bltnode
  104.  
  105.     bltnodePtr  n 
  106.     ADDRESS   _function 
  107.     BYTE    stat
  108.     BYTE    bn_dummy 
  109.     SHORTINT   blitsize 
  110.     SHORTINT   beamsync 
  111.     ADDRESS   cleanup
  112. END STRUCT 
  113.  
  114. /* defined bits for bltstat */
  115. #define CLEANUP &H40
  116. #define CLEANME CLEANUP
  117.  
  118. #endif  /* HARDWARE_BLIT_H */
  119.