home *** CD-ROM | disk | FTP | other *** search
/ CU Amiga Super CD-ROM 23 / CU Amiga - Super CD-ROM 23 (June 1998).iso / CreatingGames / Utilities / Misc / GraphicsCode / assembler / Graphics_Base.i < prev    next >
Encoding:
Text File  |  1995-12-08  |  2.6 KB  |  168 lines

  1.     STRUCTURE    Screen_Store,0
  2.         LONG    SS_View
  3.         LONG    SS_ViewExtra
  4.         LONG    SS_MonSpec
  5.         LONG    SS_BitMap
  6.         LONG    SS_Screen
  7.         LONG    SS_RasInfo
  8.         LONG    SS_ViewPort
  9.         LONG    SS_ViewPortExtra
  10.         LONG    SS_DimensionInfo
  11.         LONG    SS_ColorMap
  12.         LONG    SS_ColorTable
  13.         LONG    SS_MaskPlane
  14.         LONG    SS_Width
  15.         LONG    SS_Height
  16.         LONG    SS_Planes
  17.         LONG    SS_RastPort
  18.         LONG    SS_UserCopperList
  19.     LABEL    Screen_Store_SIZEOF
  20.  
  21.     STRUCTURE    MaskPlane,0
  22.         LONG    MP_PlaneSize
  23.         LONG    MP_MaskPlane
  24.         WORD    MP_Clip_X_Min
  25.         WORD    MP_Clip_Y_Min
  26.         WORD    MP_Clip_X_Max
  27.         WORD    MP_Clip_Y_Max
  28.         STRUCT    MP_PointBuffer,100
  29.         STRUCT    MP_PointBuffer2,100
  30.     LABEL    MaskPlane_SIZEOF
  31.  
  32. ;    A Macro to show the supplied screen
  33.     
  34. SHOW    MACRO
  35.     PUSHALL
  36.     move.l    \1,a5
  37.     move.l    SS_View(a5),a1
  38.     CALLGRAF    LoadView
  39.     PULLALL
  40.     ENDM
  41.  
  42. ;    Turn off sprite DMA
  43.  
  44. OFF_SPRITE    MACRO
  45.     move.w    #%0000000000100000,$dff096
  46.     ENDM
  47.  
  48. ;    Turn on sprite DMA
  49.  
  50. ON_SPRITE    MACRO
  51.     move.w    #%1000000000100000,$dff096
  52.     ENDM
  53.  
  54. ;    Copper Macros
  55. ;    Use these to construct the copper stream to be fed into
  56. ;    Add_Copper()
  57.  
  58. CMOVE    macro    register,value
  59.     dc.w    \1,\2
  60.     endm
  61.  
  62. CWAIT    macro    x,y             0<=x<=127, 0<=y<=255
  63.     dc.b    \1,\2,$ff,$fe
  64.     endm
  65.  
  66. CEND    macro
  67.     dc.w    $ffff,$fffe
  68.     endm
  69.  
  70. ;palette control registers
  71.  
  72. COLOR00    EQU    $180
  73. COLOR01    EQU    $182
  74. COLOR02    EQU    $184
  75. COLOR03    EQU    $186
  76. COLOR04    EQU    $188
  77. COLOR05    EQU    $18A
  78. COLOR06    EQU    $18C
  79. COLOR07    EQU    $18E
  80. COLOR08    EQU    $190
  81. COLOR09    EQU    $192
  82. COLOR10    EQU    $194
  83. COLOR11    EQU    $196
  84. COLOR12    EQU    $198
  85. COLOR13    EQU    $19A
  86. COLOR14    EQU    $19C
  87. COLOR15    EQU    $19E
  88. COLOR16    EQU    $1A0
  89. COLOR17    EQU    $1A2
  90. COLOR18    EQU    $1A4
  91. COLOR19    EQU    $1A6
  92. COLOR20    EQU    $1A8
  93. COLOR21    EQU    $1AA
  94. COLOR22    EQU    $1AC
  95. COLOR23    EQU    $1AE
  96. COLOR24    EQU    $1B0
  97. COLOR25    EQU    $1B2
  98. COLOR26    EQU    $1B4
  99. COLOR27    EQU    $1B6
  100. COLOR28    EQU    $1B8
  101. COLOR29    EQU    $1BA
  102. COLOR30    EQU    $1BC
  103. COLOR31    EQU    $1BE
  104.  
  105. BPLCON3    EQU    $106
  106.  
  107. ;    A collection Of macros which are useful or needed by the
  108. ;    Graphics_Base.i File
  109.  
  110. OPENLIB MACRO    address of name,version no,libbase
  111.     movea.l    (4).w,a6
  112.     lea    \1,a1
  113.     moveq.l    #\2,d0
  114.     jsr    _LVOOpenLibrary(a6)
  115.     move.l    d0,\3
  116.     ENDM
  117.  
  118. CLOSELIB MACRO    libbase
  119.       movea.l    (4).w,a6    
  120.      movea.l    \1,a1
  121.      jsr    _LVOCloseLibrary(a6)
  122.      ENDM
  123.  
  124. ; Push registers contents onto stack -- use for > 3 registers only
  125.  
  126. PUSH        macro
  127.         movem.l        \1,-(sp)
  128.         endm
  129.  
  130. PUSHALL        macro
  131.         PUSH        d0-d7/a0-a6
  132.         endm
  133.         
  134. ; Retrieve registers contents from stack
  135.  
  136. PULL        macro
  137.         movem.l        (sp)+,\1
  138.         endm
  139.  
  140. PULLALL        macro
  141.         PULL        d0-d7/a0-a6
  142.         endm
  143.  
  144. ; Inserts pause 
  145.  
  146. PAUSE        macro
  147.  
  148.         PUSHALL
  149.         move.l        #\1,d0
  150. _pause\@        subi.l        #1,d0
  151.         bne.s        _pause\@
  152.         PULLALL
  153.         endm
  154.  
  155. CHECK_CLICK    macro
  156.         btst.b        #6,$BFE001        LMB check
  157.         endm
  158.  
  159. CHECK_SPACE    macro
  160.         bsr    GetKey
  161.         cmp.b    #$40,d0
  162.         endm
  163.  
  164. ;    include files needed for the iff routines
  165.  
  166.     include "iff.i"
  167.     include "IFF_Lib.i"
  168.