home *** CD-ROM | disk | FTP | other *** search
/ Otherware / Otherware_1_SB_Development.iso / amiga / programm / language / gcc222.lha / os-include / inline / graphics.h < prev    next >
Encoding:
C/C++ Source or Header  |  1992-08-10  |  56.5 KB  |  1,742 lines

  1. #ifndef _INLINE_GRAPHICS_H
  2. #define _INLINE_GRAPHICS_H
  3.  
  4. #include <sys/cdefs.h>
  5. #include <inline/stubs.h>
  6.  
  7. __BEGIN_DECLS
  8.  
  9. #ifndef BASE_EXT_DECL
  10. #define BASE_EXT_DECL extern struct GfxBase*  GfxBase;
  11. #endif
  12. #ifndef BASE_PAR_DECL
  13. #define BASE_PAR_DECL
  14. #define BASE_PAR_DECL0 void
  15. #endif
  16. #ifndef BASE_NAME
  17. #define BASE_NAME GfxBase
  18. #endif
  19.  
  20. static __inline void 
  21. AddAnimOb (BASE_PAR_DECL struct AnimOb *anOb,struct AnimOb **anKey,struct RastPort *rp)
  22. {
  23.   BASE_EXT_DECL
  24.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  25.   register struct AnimOb *a0 __asm("a0") = anOb;
  26.   register struct AnimOb **a1 __asm("a1") = anKey;
  27.   register struct RastPort *a2 __asm("a2") = rp;
  28.   __asm __volatile ("jsr a6@(-0x9c)"
  29.   : /* no output */
  30.   : "r" (a6), "r" (a0), "r" (a1), "r" (a2)
  31.   : "a0","a1","a2","d0","d1", "memory");
  32. }
  33. static __inline void 
  34. AddBob (BASE_PAR_DECL struct Bob *bob,struct RastPort *rp)
  35. {
  36.   BASE_EXT_DECL
  37.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  38.   register struct Bob *a0 __asm("a0") = bob;
  39.   register struct RastPort *a1 __asm("a1") = rp;
  40.   __asm __volatile ("jsr a6@(-0x60)"
  41.   : /* no output */
  42.   : "r" (a6), "r" (a0), "r" (a1)
  43.   : "a0","a1","d0","d1", "memory");
  44. }
  45. static __inline void 
  46. AddFont (BASE_PAR_DECL struct TextFont *textFont)
  47. {
  48.   BASE_EXT_DECL
  49.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  50.   register struct TextFont *a1 __asm("a1") = textFont;
  51.   __asm __volatile ("jsr a6@(-0x1e0)"
  52.   : /* no output */
  53.   : "r" (a6), "r" (a1)
  54.   : "a0","a1","d0","d1", "memory");
  55. }
  56. static __inline void 
  57. AddVSprite (BASE_PAR_DECL struct VSprite *vSprite,struct RastPort *rp)
  58. {
  59.   BASE_EXT_DECL
  60.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  61.   register struct VSprite *a0 __asm("a0") = vSprite;
  62.   register struct RastPort *a1 __asm("a1") = rp;
  63.   __asm __volatile ("jsr a6@(-0x66)"
  64.   : /* no output */
  65.   : "r" (a6), "r" (a0), "r" (a1)
  66.   : "a0","a1","d0","d1", "memory");
  67. }
  68. static __inline PLANEPTR 
  69. AllocRaster (BASE_PAR_DECL unsigned long width,unsigned long height)
  70. {
  71.   BASE_EXT_DECL
  72.   register PLANEPTR  _res  __asm("d0");
  73.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  74.   register unsigned long d0 __asm("d0") = width;
  75.   register unsigned long d1 __asm("d1") = height;
  76.   __asm __volatile ("jsr a6@(-0x1ec)"
  77.   : "=r" (_res)
  78.   : "r" (a6), "r" (d0), "r" (d1)
  79.   : "a0","a1","d0","d1", "memory");
  80.   return _res;
  81. }
  82. static __inline void 
  83. AndRectRegion (BASE_PAR_DECL struct Region *region,struct Rectangle *rectangle)
  84. {
  85.   BASE_EXT_DECL
  86.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  87.   register struct Region *a0 __asm("a0") = region;
  88.   register struct Rectangle *a1 __asm("a1") = rectangle;
  89.   __asm __volatile ("jsr a6@(-0x1f8)"
  90.   : /* no output */
  91.   : "r" (a6), "r" (a0), "r" (a1)
  92.   : "a0","a1","d0","d1", "memory");
  93. }
  94. static __inline BOOL 
  95. AndRegionRegion (BASE_PAR_DECL struct Region *srcRegion,struct Region *destRegion)
  96. {
  97.   BASE_EXT_DECL
  98.   register BOOL  _res  __asm("d0");
  99.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  100.   register struct Region *a0 __asm("a0") = srcRegion;
  101.   register struct Region *a1 __asm("a1") = destRegion;
  102.   __asm __volatile ("jsr a6@(-0x270)"
  103.   : "=r" (_res)
  104.   : "r" (a6), "r" (a0), "r" (a1)
  105.   : "a0","a1","d0","d1", "memory");
  106.   return _res;
  107. }
  108. static __inline void 
  109. Animate (BASE_PAR_DECL struct AnimOb **anKey,struct RastPort *rp)
  110. {
  111.   BASE_EXT_DECL
  112.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  113.   register struct AnimOb **a0 __asm("a0") = anKey;
  114.   register struct RastPort *a1 __asm("a1") = rp;
  115.   __asm __volatile ("jsr a6@(-0xa2)"
  116.   : /* no output */
  117.   : "r" (a6), "r" (a0), "r" (a1)
  118.   : "a0","a1","d0","d1", "memory");
  119. }
  120. static __inline LONG 
  121. AreaDraw (BASE_PAR_DECL struct RastPort *rp,long x,long y)
  122. {
  123.   BASE_EXT_DECL
  124.   register LONG  _res  __asm("d0");
  125.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  126.   register struct RastPort *a1 __asm("a1") = rp;
  127.   register long d0 __asm("d0") = x;
  128.   register long d1 __asm("d1") = y;
  129.   __asm __volatile ("jsr a6@(-0x102)"
  130.   : "=r" (_res)
  131.   : "r" (a6), "r" (a1), "r" (d0), "r" (d1)
  132.   : "a0","a1","d0","d1", "memory");
  133.   return _res;
  134. }
  135. static __inline LONG 
  136. AreaEllipse (BASE_PAR_DECL struct RastPort *rp,long xCenter,long yCenter,long a,long b)
  137. {
  138.   BASE_EXT_DECL
  139.   register LONG  _res  __asm("d0");
  140.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  141.   register struct RastPort *a1 __asm("a1") = rp;
  142.   register long d0 __asm("d0") = xCenter;
  143.   register long d1 __asm("d1") = yCenter;
  144.   register long d2 __asm("d2") = a;
  145.   register long d3 __asm("d3") = b;
  146.   __asm __volatile ("jsr a6@(-0xba)"
  147.   : "=r" (_res)
  148.   : "r" (a6), "r" (a1), "r" (d0), "r" (d1), "r" (d2), "r" (d3)
  149.   : "a0","a1","d0","d1","d2","d3", "memory");
  150.   return _res;
  151. }
  152. static __inline LONG 
  153. AreaEnd (BASE_PAR_DECL struct RastPort *rp)
  154. {
  155.   BASE_EXT_DECL
  156.   register LONG  _res  __asm("d0");
  157.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  158.   register struct RastPort *a1 __asm("a1") = rp;
  159.   __asm __volatile ("jsr a6@(-0x108)"
  160.   : "=r" (_res)
  161.   : "r" (a6), "r" (a1)
  162.   : "a0","a1","d0","d1", "memory");
  163.   return _res;
  164. }
  165. static __inline LONG 
  166. AreaMove (BASE_PAR_DECL struct RastPort *rp,long x,long y)
  167. {
  168.   BASE_EXT_DECL
  169.   register LONG  _res  __asm("d0");
  170.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  171.   register struct RastPort *a1 __asm("a1") = rp;
  172.   register long d0 __asm("d0") = x;
  173.   register long d1 __asm("d1") = y;
  174.   __asm __volatile ("jsr a6@(-0xfc)"
  175.   : "=r" (_res)
  176.   : "r" (a6), "r" (a1), "r" (d0), "r" (d1)
  177.   : "a0","a1","d0","d1", "memory");
  178.   return _res;
  179. }
  180. static __inline void 
  181. AskFont (BASE_PAR_DECL struct RastPort *rp,struct TextAttr *textAttr)
  182. {
  183.   BASE_EXT_DECL
  184.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  185.   register struct RastPort *a1 __asm("a1") = rp;
  186.   register struct TextAttr *a0 __asm("a0") = textAttr;
  187.   __asm __volatile ("jsr a6@(-0x1da)"
  188.   : /* no output */
  189.   : "r" (a6), "r" (a1), "r" (a0)
  190.   : "a0","a1","d0","d1", "memory");
  191. }
  192. static __inline ULONG 
  193. AskSoftStyle (BASE_PAR_DECL struct RastPort *rp)
  194. {
  195.   BASE_EXT_DECL
  196.   register ULONG  _res  __asm("d0");
  197.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  198.   register struct RastPort *a1 __asm("a1") = rp;
  199.   __asm __volatile ("jsr a6@(-0x54)"
  200.   : "=r" (_res)
  201.   : "r" (a6), "r" (a1)
  202.   : "a0","a1","d0","d1", "memory");
  203.   return _res;
  204. }
  205. static __inline BOOL 
  206. AttemptLockLayerRom (BASE_PAR_DECL struct Layer *layer)
  207. {
  208.   BASE_EXT_DECL
  209.   register BOOL  _res  __asm("d0");
  210.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  211.   register struct Layer *a5 __asm("d7") = layer;
  212.   __asm __volatile ("exg a5,d7; jsr a6@(-0x28e); exg a5,d7"
  213.   : "=r" (_res)
  214.   : "r" (a6), "r" (a5)
  215.   : "a0","a1","d0","d1","d7", "memory");
  216.   return _res;
  217. }
  218. static __inline void 
  219. BitMapScale (BASE_PAR_DECL struct BitScaleArgs *bitScaleArgs)
  220. {
  221.   BASE_EXT_DECL
  222.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  223.   register struct BitScaleArgs *a0 __asm("a0") = bitScaleArgs;
  224.   __asm __volatile ("jsr a6@(-0x2a6)"
  225.   : /* no output */
  226.   : "r" (a6), "r" (a0)
  227.   : "a0","a1","d0","d1", "memory");
  228. }
  229. static __inline LONG 
  230. BltBitMap (BASE_PAR_DECL struct BitMap *srcBitMap,long xSrc,long ySrc,struct BitMap *destBitMap,long xDest,long yDest,long xSize,long ySize,unsigned long minterm,unsigned long mask,PLANEPTR tempA)
  231. {
  232.   BASE_EXT_DECL
  233.   register LONG  _res  __asm("d0");
  234.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  235.   register struct BitMap *a0 __asm("a0") = srcBitMap;
  236.   register long d0 __asm("d0") = xSrc;
  237.   register long d1 __asm("d1") = ySrc;
  238.   register struct BitMap *a1 __asm("a1") = destBitMap;
  239.   register long d2 __asm("d2") = xDest;
  240.   register long d3 __asm("d3") = yDest;
  241.   register long d4 __asm("d4") = xSize;
  242.   register long d5 __asm("d5") = ySize;
  243.   register unsigned long d6 __asm("d6") = minterm;
  244.   register unsigned long d7 __asm("d7") = mask;
  245.   register PLANEPTR a2 __asm("a2") = tempA;
  246.   __asm __volatile ("jsr a6@(-0x1e)"
  247.   : "=r" (_res)
  248.   : "r" (a6), "r" (a0), "r" (d0), "r" (d1), "r" (a1), "r" (d2), "r" (d3), "r" (d4), "r" (d5), "r" (d6), "r" (d7), "r" (a2)
  249.   : "a0","a1","a2","d0","d1","d2","d3","d4","d5","d6","d7", "memory");
  250.   return _res;
  251. }
  252. static __inline void 
  253. BltBitMapRastPort (BASE_PAR_DECL struct BitMap *srcBitMap,long xSrc,long ySrc,struct RastPort *destRP,long xDest,long yDest,long xSize,long ySize,unsigned long minterm)
  254. {
  255.   BASE_EXT_DECL
  256.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  257.   register struct BitMap *a0 __asm("a0") = srcBitMap;
  258.   register long d0 __asm("d0") = xSrc;
  259.   register long d1 __asm("d1") = ySrc;
  260.   register struct RastPort *a1 __asm("a1") = destRP;
  261.   register long d2 __asm("d2") = xDest;
  262.   register long d3 __asm("d3") = yDest;
  263.   register long d4 __asm("d4") = xSize;
  264.   register long d5 __asm("d5") = ySize;
  265.   register unsigned long d6 __asm("d6") = minterm;
  266.   __asm __volatile ("jsr a6@(-0x25e)"
  267.   : /* no output */
  268.   : "r" (a6), "r" (a0), "r" (d0), "r" (d1), "r" (a1), "r" (d2), "r" (d3), "r" (d4), "r" (d5), "r" (d6)
  269.   : "a0","a1","d0","d1","d2","d3","d4","d5","d6", "memory");
  270. }
  271. static __inline void 
  272. BltClear (BASE_PAR_DECL PLANEPTR memBlock,unsigned long byteCount,unsigned long flags)
  273. {
  274.   BASE_EXT_DECL
  275.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  276.   register PLANEPTR a1 __asm("a1") = memBlock;
  277.   register unsigned long d0 __asm("d0") = byteCount;
  278.   register unsigned long d1 __asm("d1") = flags;
  279.   __asm __volatile ("jsr a6@(-0x12c)"
  280.   : /* no output */
  281.   : "r" (a6), "r" (a1), "r" (d0), "r" (d1)
  282.   : "a0","a1","d0","d1", "memory");
  283. }
  284. static __inline void 
  285. BltMaskBitMapRastPort (BASE_PAR_DECL struct BitMap *srcBitMap,long xSrc,long ySrc,struct RastPort *destRP,long xDest,long yDest,long xSize,long ySize,unsigned long minterm,PLANEPTR bltMask)
  286. {
  287.   BASE_EXT_DECL
  288.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  289.   register struct BitMap *a0 __asm("a0") = srcBitMap;
  290.   register long d0 __asm("d0") = xSrc;
  291.   register long d1 __asm("d1") = ySrc;
  292.   register struct RastPort *a1 __asm("a1") = destRP;
  293.   register long d2 __asm("d2") = xDest;
  294.   register long d3 __asm("d3") = yDest;
  295.   register long d4 __asm("d4") = xSize;
  296.   register long d5 __asm("d5") = ySize;
  297.   register unsigned long d6 __asm("d6") = minterm;
  298.   register PLANEPTR a2 __asm("a2") = bltMask;
  299.   __asm __volatile ("jsr a6@(-0x27c)"
  300.   : /* no output */
  301.   : "r" (a6), "r" (a0), "r" (d0), "r" (d1), "r" (a1), "r" (d2), "r" (d3), "r" (d4), "r" (d5), "r" (d6), "r" (a2)
  302.   : "a0","a1","a2","d0","d1","d2","d3","d4","d5","d6", "memory");
  303. }
  304. static __inline void 
  305. BltPattern (BASE_PAR_DECL struct RastPort *rp,PLANEPTR mask,long xMin,long yMin,long xMax,long yMax,unsigned long maskBPR)
  306. {
  307.   BASE_EXT_DECL
  308.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  309.   register struct RastPort *a1 __asm("a1") = rp;
  310.   register PLANEPTR a0 __asm("a0") = mask;
  311.   register long d0 __asm("d0") = xMin;
  312.   register long d1 __asm("d1") = yMin;
  313.   register long d2 __asm("d2") = xMax;
  314.   register long d3 __asm("d3") = yMax;
  315.   register unsigned long d4 __asm("d4") = maskBPR;
  316.   __asm __volatile ("jsr a6@(-0x138)"
  317.   : /* no output */
  318.   : "r" (a6), "r" (a1), "r" (a0), "r" (d0), "r" (d1), "r" (d2), "r" (d3), "r" (d4)
  319.   : "a0","a1","d0","d1","d2","d3","d4", "memory");
  320. }
  321. static __inline void 
  322. BltTemplate (BASE_PAR_DECL PLANEPTR source,long xSrc,long srcMod,struct RastPort *destRP,long xDest,long yDest,long xSize,long ySize)
  323. {
  324.   BASE_EXT_DECL
  325.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  326.   register PLANEPTR a0 __asm("a0") = source;
  327.   register long d0 __asm("d0") = xSrc;
  328.   register long d1 __asm("d1") = srcMod;
  329.   register struct RastPort *a1 __asm("a1") = destRP;
  330.   register long d2 __asm("d2") = xDest;
  331.   register long d3 __asm("d3") = yDest;
  332.   register long d4 __asm("d4") = xSize;
  333.   register long d5 __asm("d5") = ySize;
  334.   __asm __volatile ("jsr a6@(-0x24)"
  335.   : /* no output */
  336.   : "r" (a6), "r" (a0), "r" (d0), "r" (d1), "r" (a1), "r" (d2), "r" (d3), "r" (d4), "r" (d5)
  337.   : "a0","a1","d0","d1","d2","d3","d4","d5", "memory");
  338. }
  339. static __inline void 
  340. CBump (BASE_PAR_DECL struct UCopList *copList)
  341. {
  342.   BASE_EXT_DECL
  343.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  344.   register struct UCopList *a1 __asm("a1") = copList;
  345.   __asm __volatile ("jsr a6@(-0x16e)"
  346.   : /* no output */
  347.   : "r" (a6), "r" (a1)
  348.   : "a0","a1","d0","d1", "memory");
  349. }
  350. static __inline void 
  351. CMove (BASE_PAR_DECL struct UCopList *copList,APTR destination,long data)
  352. {
  353.   BASE_EXT_DECL
  354.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  355.   register struct UCopList *a1 __asm("a1") = copList;
  356.   register APTR d0 __asm("d0") = destination;
  357.   register long d1 __asm("d1") = data;
  358.   __asm __volatile ("jsr a6@(-0x174)"
  359.   : /* no output */
  360.   : "r" (a6), "r" (a1), "r" (d0), "r" (d1)
  361.   : "a0","a1","d0","d1", "memory");
  362. }
  363. static __inline void 
  364. CWait (BASE_PAR_DECL struct UCopList *copList,long v,long h)
  365. {
  366.   BASE_EXT_DECL
  367.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  368.   register struct UCopList *a1 __asm("a1") = copList;
  369.   register long d0 __asm("d0") = v;
  370.   register long d1 __asm("d1") = h;
  371.   __asm __volatile ("jsr a6@(-0x17a)"
  372.   : /* no output */
  373.   : "r" (a6), "r" (a1), "r" (d0), "r" (d1)
  374.   : "a0","a1","d0","d1", "memory");
  375. }
  376. static __inline void 
  377. ChangeSprite (BASE_PAR_DECL struct ViewPort *vp,struct SimpleSprite *sprite,PLANEPTR newData)
  378. {
  379.   BASE_EXT_DECL
  380.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  381.   register struct ViewPort *a0 __asm("a0") = vp;
  382.   register struct SimpleSprite *a1 __asm("a1") = sprite;
  383.   register PLANEPTR a2 __asm("a2") = newData;
  384.   __asm __volatile ("jsr a6@(-0x1a4)"
  385.   : /* no output */
  386.   : "r" (a6), "r" (a0), "r" (a1), "r" (a2)
  387.   : "a0","a1","a2","d0","d1", "memory");
  388. }
  389. static __inline void 
  390. ClearEOL (BASE_PAR_DECL struct RastPort *rp)
  391. {
  392.   BASE_EXT_DECL
  393.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  394.   register struct RastPort *a1 __asm("a1") = rp;
  395.   __asm __volatile ("jsr a6@(-0x2a)"
  396.   : /* no output */
  397.   : "r" (a6), "r" (a1)
  398.   : "a0","a1","d0","d1", "memory");
  399. }
  400. static __inline BOOL 
  401. ClearRectRegion (BASE_PAR_DECL struct Region *region,struct Rectangle *rectangle)
  402. {
  403.   BASE_EXT_DECL
  404.   register BOOL  _res  __asm("d0");
  405.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  406.   register struct Region *a0 __asm("a0") = region;
  407.   register struct Rectangle *a1 __asm("a1") = rectangle;
  408.   __asm __volatile ("jsr a6@(-0x20a)"
  409.   : "=r" (_res)
  410.   : "r" (a6), "r" (a0), "r" (a1)
  411.   : "a0","a1","d0","d1", "memory");
  412.   return _res;
  413. }
  414. static __inline void 
  415. ClearRegion (BASE_PAR_DECL struct Region *region)
  416. {
  417.   BASE_EXT_DECL
  418.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  419.   register struct Region *a0 __asm("a0") = region;
  420.   __asm __volatile ("jsr a6@(-0x210)"
  421.   : /* no output */
  422.   : "r" (a6), "r" (a0)
  423.   : "a0","a1","d0","d1", "memory");
  424. }
  425. static __inline void 
  426. ClearScreen (BASE_PAR_DECL struct RastPort *rp)
  427. {
  428.   BASE_EXT_DECL
  429.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  430.   register struct RastPort *a1 __asm("a1") = rp;
  431.   __asm __volatile ("jsr a6@(-0x30)"
  432.   : /* no output */
  433.   : "r" (a6), "r" (a1)
  434.   : "a0","a1","d0","d1", "memory");
  435. }
  436. static __inline void 
  437. ClipBlit (BASE_PAR_DECL struct RastPort *srcRP,long xSrc,long ySrc,struct RastPort *destRP,long xDest,long yDest,long xSize,long ySize,unsigned long minterm)
  438. {
  439.   BASE_EXT_DECL
  440.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  441.   register struct RastPort *a0 __asm("a0") = srcRP;
  442.   register long d0 __asm("d0") = xSrc;
  443.   register long d1 __asm("d1") = ySrc;
  444.   register struct RastPort *a1 __asm("a1") = destRP;
  445.   register long d2 __asm("d2") = xDest;
  446.   register long d3 __asm("d3") = yDest;
  447.   register long d4 __asm("d4") = xSize;
  448.   register long d5 __asm("d5") = ySize;
  449.   register unsigned long d6 __asm("d6") = minterm;
  450.   __asm __volatile ("jsr a6@(-0x228)"
  451.   : /* no output */
  452.   : "r" (a6), "r" (a0), "r" (d0), "r" (d1), "r" (a1), "r" (d2), "r" (d3), "r" (d4), "r" (d5), "r" (d6)
  453.   : "a0","a1","d0","d1","d2","d3","d4","d5","d6", "memory");
  454. }
  455. static __inline void 
  456. CloseFont (BASE_PAR_DECL struct TextFont *textFont)
  457. {
  458.   BASE_EXT_DECL
  459.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  460.   register struct TextFont *a1 __asm("a1") = textFont;
  461.   __asm __volatile ("jsr a6@(-0x4e)"
  462.   : /* no output */
  463.   : "r" (a6), "r" (a1)
  464.   : "a0","a1","d0","d1", "memory");
  465. }
  466. static __inline BOOL 
  467. CloseMonitor (BASE_PAR_DECL struct MonitorSpec *monitorSpec)
  468. {
  469.   BASE_EXT_DECL
  470.   register BOOL  _res  __asm("d0");
  471.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  472.   register struct MonitorSpec *a0 __asm("a0") = monitorSpec;
  473.   __asm __volatile ("jsr a6@(-0x2d0)"
  474.   : "=r" (_res)
  475.   : "r" (a6), "r" (a0)
  476.   : "a0","a1","d0","d1", "memory");
  477.   return _res;
  478. }
  479. static __inline void 
  480. CopySBitMap (BASE_PAR_DECL struct Layer *layer)
  481. {
  482.   BASE_EXT_DECL
  483.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  484.   register struct Layer *a0 __asm("a0") = layer;
  485.   __asm __volatile ("jsr a6@(-0x1c2)"
  486.   : /* no output */
  487.   : "r" (a6), "r" (a0)
  488.   : "a0","a1","d0","d1", "memory");
  489. }
  490. static __inline void 
  491. DisownBlitter (BASE_PAR_DECL0)
  492. {
  493.   BASE_EXT_DECL
  494.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  495.   __asm __volatile ("jsr a6@(-0x1ce)"
  496.   : /* no output */
  497.   : "r" (a6)
  498.   : "a0","a1","d0","d1", "memory");
  499. }
  500. static __inline void 
  501. DisposeRegion (BASE_PAR_DECL struct Region *region)
  502. {
  503.   BASE_EXT_DECL
  504.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  505.   register struct Region *a0 __asm("a0") = region;
  506.   __asm __volatile ("jsr a6@(-0x216)"
  507.   : /* no output */
  508.   : "r" (a6), "r" (a0)
  509.   : "a0","a1","d0","d1", "memory");
  510. }
  511. static __inline void 
  512. DoCollision (BASE_PAR_DECL struct RastPort *rp)
  513. {
  514.   BASE_EXT_DECL
  515.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  516.   register struct RastPort *a1 __asm("a1") = rp;
  517.   __asm __volatile ("jsr a6@(-0x6c)"
  518.   : /* no output */
  519.   : "r" (a6), "r" (a1)
  520.   : "a0","a1","d0","d1", "memory");
  521. }
  522. static __inline void 
  523. Draw (BASE_PAR_DECL struct RastPort *rp,long x,long y)
  524. {
  525.   BASE_EXT_DECL
  526.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  527.   register struct RastPort *a1 __asm("a1") = rp;
  528.   register long d0 __asm("d0") = x;
  529.   register long d1 __asm("d1") = y;
  530.   __asm __volatile ("jsr a6@(-0xf6)"
  531.   : /* no output */
  532.   : "r" (a6), "r" (a1), "r" (d0), "r" (d1)
  533.   : "a0","a1","d0","d1", "memory");
  534. }
  535. static __inline void 
  536. DrawEllipse (BASE_PAR_DECL struct RastPort *rp,long xCenter,long yCenter,long a,long b)
  537. {
  538.   BASE_EXT_DECL
  539.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  540.   register struct RastPort *a1 __asm("a1") = rp;
  541.   register long d0 __asm("d0") = xCenter;
  542.   register long d1 __asm("d1") = yCenter;
  543.   register long d2 __asm("d2") = a;
  544.   register long d3 __asm("d3") = b;
  545.   __asm __volatile ("jsr a6@(-0xb4)"
  546.   : /* no output */
  547.   : "r" (a6), "r" (a1), "r" (d0), "r" (d1), "r" (d2), "r" (d3)
  548.   : "a0","a1","d0","d1","d2","d3", "memory");
  549. }
  550. static __inline void 
  551. DrawGList (BASE_PAR_DECL struct RastPort *rp,struct ViewPort *vp)
  552. {
  553.   BASE_EXT_DECL
  554.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  555.   register struct RastPort *a1 __asm("a1") = rp;
  556.   register struct ViewPort *a0 __asm("a0") = vp;
  557.   __asm __volatile ("jsr a6@(-0x72)"
  558.   : /* no output */
  559.   : "r" (a6), "r" (a1), "r" (a0)
  560.   : "a0","a1","d0","d1", "memory");
  561. }
  562. static __inline void 
  563. EraseRect (BASE_PAR_DECL struct RastPort *rp,long xMin,long yMin,long xMax,long yMax)
  564. {
  565.   BASE_EXT_DECL
  566.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  567.   register struct RastPort *a1 __asm("a1") = rp;
  568.   register long d0 __asm("d0") = xMin;
  569.   register long d1 __asm("d1") = yMin;
  570.   register long d2 __asm("d2") = xMax;
  571.   register long d3 __asm("d3") = yMax;
  572.   __asm __volatile ("jsr a6@(-0x32a)"
  573.   : /* no output */
  574.   : "r" (a6), "r" (a1), "r" (d0), "r" (d1), "r" (d2), "r" (d3)
  575.   : "a0","a1","d0","d1","d2","d3", "memory");
  576. }
  577. static __inline ULONG 
  578. ExtendFont (BASE_PAR_DECL struct TextFont *font,struct TagItem *fontTags)
  579. {
  580.   BASE_EXT_DECL
  581.   register ULONG  _res  __asm("d0");
  582.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  583.   register struct TextFont *a0 __asm("a0") = font;
  584.   register struct TagItem *a1 __asm("a1") = fontTags;
  585.   __asm __volatile ("jsr a6@(-0x330)"
  586.   : "=r" (_res)
  587.   : "r" (a6), "r" (a0), "r" (a1)
  588.   : "a0","a1","d0","d1", "memory");
  589.   return _res;
  590. }
  591. #ifndef NO_INLINE_STDARG
  592. #define ExtendFontTags(a0, tags...) \
  593.   ({ struct TagItem _tags[] = { tags }; ExtendFont ((a0), _tags); })
  594. #endif /* not NO_INLINE_STDARG */
  595. static __inline DisplayInfoHandle 
  596. FindDisplayInfo (BASE_PAR_DECL unsigned long displayID)
  597. {
  598.   BASE_EXT_DECL
  599.   register DisplayInfoHandle  _res  __asm("d0");
  600.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  601.   register unsigned long d0 __asm("d0") = displayID;
  602.   __asm __volatile ("jsr a6@(-0x2d6)"
  603.   : "=r" (_res)
  604.   : "r" (a6), "r" (d0)
  605.   : "a0","a1","d0","d1", "memory");
  606.   return _res;
  607. }
  608. static __inline BOOL 
  609. Flood (BASE_PAR_DECL struct RastPort *rp,unsigned long mode,long x,long y)
  610. {
  611.   BASE_EXT_DECL
  612.   register BOOL  _res  __asm("d0");
  613.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  614.   register struct RastPort *a1 __asm("a1") = rp;
  615.   register unsigned long d2 __asm("d2") = mode;
  616.   register long d0 __asm("d0") = x;
  617.   register long d1 __asm("d1") = y;
  618.   __asm __volatile ("jsr a6@(-0x14a)"
  619.   : "=r" (_res)
  620.   : "r" (a6), "r" (a1), "r" (d2), "r" (d0), "r" (d1)
  621.   : "a0","a1","d0","d1","d2", "memory");
  622.   return _res;
  623. }
  624. static __inline void 
  625. FontExtent (BASE_PAR_DECL struct TextFont *font,struct TextExtent *fontExtent)
  626. {
  627.   BASE_EXT_DECL
  628.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  629.   register struct TextFont *a0 __asm("a0") = font;
  630.   register struct TextExtent *a1 __asm("a1") = fontExtent;
  631.   __asm __volatile ("jsr a6@(-0x2fa)"
  632.   : /* no output */
  633.   : "r" (a6), "r" (a0), "r" (a1)
  634.   : "a0","a1","d0","d1", "memory");
  635. }
  636. static __inline void 
  637. FreeColorMap (BASE_PAR_DECL struct ColorMap *colorMap)
  638. {
  639.   BASE_EXT_DECL
  640.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  641.   register struct ColorMap *a0 __asm("a0") = colorMap;
  642.   __asm __volatile ("jsr a6@(-0x240)"
  643.   : /* no output */
  644.   : "r" (a6), "r" (a0)
  645.   : "a0","a1","d0","d1", "memory");
  646. }
  647. static __inline void 
  648. FreeCopList (BASE_PAR_DECL struct CopList *copList)
  649. {
  650.   BASE_EXT_DECL
  651.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  652.   register struct CopList *a0 __asm("a0") = copList;
  653.   __asm __volatile ("jsr a6@(-0x222)"
  654.   : /* no output */
  655.   : "r" (a6), "r" (a0)
  656.   : "a0","a1","d0","d1", "memory");
  657. }
  658. static __inline void 
  659. FreeCprList (BASE_PAR_DECL struct cprlist *cprList)
  660. {
  661.   BASE_EXT_DECL
  662.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  663.   register struct cprlist *a0 __asm("a0") = cprList;
  664.   __asm __volatile ("jsr a6@(-0x234)"
  665.   : /* no output */
  666.   : "r" (a6), "r" (a0)
  667.   : "a0","a1","d0","d1", "memory");
  668. }
  669. static __inline void 
  670. FreeGBuffers (BASE_PAR_DECL struct AnimOb *anOb,struct RastPort *rp,long flag)
  671. {
  672.   BASE_EXT_DECL
  673.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  674.   register struct AnimOb *a0 __asm("a0") = anOb;
  675.   register struct RastPort *a1 __asm("a1") = rp;
  676.   register long d0 __asm("d0") = flag;
  677.   __asm __volatile ("jsr a6@(-0x258)"
  678.   : /* no output */
  679.   : "r" (a6), "r" (a0), "r" (a1), "r" (d0)
  680.   : "a0","a1","d0","d1", "memory");
  681. }
  682. static __inline void 
  683. FreeRaster (BASE_PAR_DECL PLANEPTR p,unsigned long width,unsigned long height)
  684. {
  685.   BASE_EXT_DECL
  686.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  687.   register PLANEPTR a0 __asm("a0") = p;
  688.   register unsigned long d0 __asm("d0") = width;
  689.   register unsigned long d1 __asm("d1") = height;
  690.   __asm __volatile ("jsr a6@(-0x1f2)"
  691.   : /* no output */
  692.   : "r" (a6), "r" (a0), "r" (d0), "r" (d1)
  693.   : "a0","a1","d0","d1", "memory");
  694. }
  695. static __inline void 
  696. FreeSprite (BASE_PAR_DECL long num)
  697. {
  698.   BASE_EXT_DECL
  699.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  700.   register long d0 __asm("d0") = num;
  701.   __asm __volatile ("jsr a6@(-0x19e)"
  702.   : /* no output */
  703.   : "r" (a6), "r" (d0)
  704.   : "a0","a1","d0","d1", "memory");
  705. }
  706. static __inline void 
  707. FreeVPortCopLists (BASE_PAR_DECL struct ViewPort *vp)
  708. {
  709.   BASE_EXT_DECL
  710.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  711.   register struct ViewPort *a0 __asm("a0") = vp;
  712.   __asm __volatile ("jsr a6@(-0x21c)"
  713.   : /* no output */
  714.   : "r" (a6), "r" (a0)
  715.   : "a0","a1","d0","d1", "memory");
  716. }
  717. static __inline struct ColorMap *
  718. GetColorMap (BASE_PAR_DECL long entries)
  719. {
  720.   BASE_EXT_DECL
  721.   register struct ColorMap * _res  __asm("d0");
  722.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  723.   register long d0 __asm("d0") = entries;
  724.   __asm __volatile ("jsr a6@(-0x23a)"
  725.   : "=r" (_res)
  726.   : "r" (a6), "r" (d0)
  727.   : "a0","a1","d0","d1", "memory");
  728.   return _res;
  729. }
  730. static __inline ULONG 
  731. GetDisplayInfoData (BASE_PAR_DECL DisplayInfoHandle handle,UBYTE *buf,unsigned long size,unsigned long tagID,unsigned long displayID)
  732. {
  733.   BASE_EXT_DECL
  734.   register ULONG  _res  __asm("d0");
  735.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  736.   register DisplayInfoHandle a0 __asm("a0") = handle;
  737.   register UBYTE *a1 __asm("a1") = buf;
  738.   register unsigned long d0 __asm("d0") = size;
  739.   register unsigned long d1 __asm("d1") = tagID;
  740.   register unsigned long d2 __asm("d2") = displayID;
  741.   __asm __volatile ("jsr a6@(-0x2f4)"
  742.   : "=r" (_res)
  743.   : "r" (a6), "r" (a0), "r" (a1), "r" (d0), "r" (d1), "r" (d2)
  744.   : "a0","a1","d0","d1","d2", "memory");
  745.   return _res;
  746. }
  747. static __inline BOOL 
  748. GetGBuffers (BASE_PAR_DECL struct AnimOb *anOb,struct RastPort *rp,long flag)
  749. {
  750.   BASE_EXT_DECL
  751.   register BOOL  _res  __asm("d0");
  752.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  753.   register struct AnimOb *a0 __asm("a0") = anOb;
  754.   register struct RastPort *a1 __asm("a1") = rp;
  755.   register long d0 __asm("d0") = flag;
  756.   __asm __volatile ("jsr a6@(-0xa8)"
  757.   : "=r" (_res)
  758.   : "r" (a6), "r" (a0), "r" (a1), "r" (d0)
  759.   : "a0","a1","d0","d1", "memory");
  760.   return _res;
  761. }
  762. static __inline ULONG 
  763. GetRGB4 (BASE_PAR_DECL struct ColorMap *colorMap,long entry)
  764. {
  765.   BASE_EXT_DECL
  766.   register ULONG  _res  __asm("d0");
  767.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  768.   register struct ColorMap *a0 __asm("a0") = colorMap;
  769.   register long d0 __asm("d0") = entry;
  770.   __asm __volatile ("jsr a6@(-0x246)"
  771.   : "=r" (_res)
  772.   : "r" (a6), "r" (a0), "r" (d0)
  773.   : "a0","a1","d0","d1", "memory");
  774.   return _res;
  775. }
  776. static __inline WORD 
  777. GetSprite (BASE_PAR_DECL struct SimpleSprite *sprite,long num)
  778. {
  779.   BASE_EXT_DECL
  780.   register WORD  _res  __asm("d0");
  781.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  782.   register struct SimpleSprite *a0 __asm("a0") = sprite;
  783.   register long d0 __asm("d0") = num;
  784.   __asm __volatile ("jsr a6@(-0x198)"
  785.   : "=r" (_res)
  786.   : "r" (a6), "r" (a0), "r" (d0)
  787.   : "a0","a1","d0","d1", "memory");
  788.   return _res;
  789. }
  790. static __inline LONG 
  791. GetVPModeID (BASE_PAR_DECL struct ViewPort *vp)
  792. {
  793.   BASE_EXT_DECL
  794.   register LONG  _res  __asm("d0");
  795.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  796.   register struct ViewPort *a0 __asm("a0") = vp;
  797.   __asm __volatile ("jsr a6@(-0x318)"
  798.   : "=r" (_res)
  799.   : "r" (a6), "r" (a0)
  800.   : "a0","a1","d0","d1", "memory");
  801.   return _res;
  802. }
  803. static __inline void 
  804. GfxAssociate (BASE_PAR_DECL APTR associateNode,APTR gfxNodePtr)
  805. {
  806.   BASE_EXT_DECL
  807.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  808.   register APTR a0 __asm("a0") = associateNode;
  809.   register APTR a1 __asm("a1") = gfxNodePtr;
  810.   __asm __volatile ("jsr a6@(-0x2a0)"
  811.   : /* no output */
  812.   : "r" (a6), "r" (a0), "r" (a1)
  813.   : "a0","a1","d0","d1", "memory");
  814. }
  815. static __inline void 
  816. GfxFree (BASE_PAR_DECL APTR gfxNodePtr)
  817. {
  818.   BASE_EXT_DECL
  819.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  820.   register APTR a0 __asm("a0") = gfxNodePtr;
  821.   __asm __volatile ("jsr a6@(-0x29a)"
  822.   : /* no output */
  823.   : "r" (a6), "r" (a0)
  824.   : "a0","a1","d0","d1", "memory");
  825. }
  826. static __inline APTR 
  827. GfxLookUp (BASE_PAR_DECL APTR associateNode)
  828. {
  829.   BASE_EXT_DECL
  830.   register APTR  _res  __asm("d0");
  831.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  832.   register APTR a0 __asm("a0") = associateNode;
  833.   __asm __volatile ("jsr a6@(-0x2be)"
  834.   : "=r" (_res)
  835.   : "r" (a6), "r" (a0)
  836.   : "a0","a1","d0","d1", "memory");
  837.   return _res;
  838. }
  839. static __inline APTR 
  840. GfxNew (BASE_PAR_DECL unsigned long gfxNodeType)
  841. {
  842.   BASE_EXT_DECL
  843.   register APTR  _res  __asm("d0");
  844.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  845.   register unsigned long d0 __asm("d0") = gfxNodeType;
  846.   __asm __volatile ("jsr a6@(-0x294)"
  847.   : "=r" (_res)
  848.   : "r" (a6), "r" (d0)
  849.   : "a0","a1","d0","d1", "memory");
  850.   return _res;
  851. }
  852. static __inline void 
  853. InitArea (BASE_PAR_DECL struct AreaInfo *areaInfo,APTR vectorBuffer,long maxVectors)
  854. {
  855.   BASE_EXT_DECL
  856.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  857.   register struct AreaInfo *a0 __asm("a0") = areaInfo;
  858.   register APTR a1 __asm("a1") = vectorBuffer;
  859.   register long d0 __asm("d0") = maxVectors;
  860.   __asm __volatile ("jsr a6@(-0x11a)"
  861.   : /* no output */
  862.   : "r" (a6), "r" (a0), "r" (a1), "r" (d0)
  863.   : "a0","a1","d0","d1", "memory");
  864. }
  865. static __inline void 
  866. InitBitMap (BASE_PAR_DECL struct BitMap *bitMap,long depth,long width,long height)
  867. {
  868.   BASE_EXT_DECL
  869.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  870.   register struct BitMap *a0 __asm("a0") = bitMap;
  871.   register long d0 __asm("d0") = depth;
  872.   register long d1 __asm("d1") = width;
  873.   register long d2 __asm("d2") = height;
  874.   __asm __volatile ("jsr a6@(-0x186)"
  875.   : /* no output */
  876.   : "r" (a6), "r" (a0), "r" (d0), "r" (d1), "r" (d2)
  877.   : "a0","a1","d0","d1","d2", "memory");
  878. }
  879. static __inline void 
  880. InitGMasks (BASE_PAR_DECL struct AnimOb *anOb)
  881. {
  882.   BASE_EXT_DECL
  883.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  884.   register struct AnimOb *a0 __asm("a0") = anOb;
  885.   __asm __volatile ("jsr a6@(-0xae)"
  886.   : /* no output */
  887.   : "r" (a6), "r" (a0)
  888.   : "a0","a1","d0","d1", "memory");
  889. }
  890. static __inline void 
  891. InitGels (BASE_PAR_DECL struct VSprite *head,struct VSprite *tail,struct GelsInfo *gelsInfo)
  892. {
  893.   BASE_EXT_DECL
  894.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  895.   register struct VSprite *a0 __asm("a0") = head;
  896.   register struct VSprite *a1 __asm("a1") = tail;
  897.   register struct GelsInfo *a2 __asm("a2") = gelsInfo;
  898.   __asm __volatile ("jsr a6@(-0x78)"
  899.   : /* no output */
  900.   : "r" (a6), "r" (a0), "r" (a1), "r" (a2)
  901.   : "a0","a1","a2","d0","d1", "memory");
  902. }
  903. static __inline void 
  904. InitMasks (BASE_PAR_DECL struct VSprite *vSprite)
  905. {
  906.   BASE_EXT_DECL
  907.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  908.   register struct VSprite *a0 __asm("a0") = vSprite;
  909.   __asm __volatile ("jsr a6@(-0x7e)"
  910.   : /* no output */
  911.   : "r" (a6), "r" (a0)
  912.   : "a0","a1","d0","d1", "memory");
  913. }
  914. static __inline void 
  915. InitRastPort (BASE_PAR_DECL struct RastPort *rp)
  916. {
  917.   BASE_EXT_DECL
  918.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  919.   register struct RastPort *a1 __asm("a1") = rp;
  920.   __asm __volatile ("jsr a6@(-0xc6)"
  921.   : /* no output */
  922.   : "r" (a6), "r" (a1)
  923.   : "a0","a1","d0","d1", "memory");
  924. }
  925. static __inline struct TmpRas *
  926. InitTmpRas (BASE_PAR_DECL struct TmpRas *tmpRas,PLANEPTR buffer,long size)
  927. {
  928.   BASE_EXT_DECL
  929.   register struct TmpRas * _res  __asm("d0");
  930.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  931.   register struct TmpRas *a0 __asm("a0") = tmpRas;
  932.   register PLANEPTR a1 __asm("a1") = buffer;
  933.   register long d0 __asm("d0") = size;
  934.   __asm __volatile ("jsr a6@(-0x1d4)"
  935.   : "=r" (_res)
  936.   : "r" (a6), "r" (a0), "r" (a1), "r" (d0)
  937.   : "a0","a1","d0","d1", "memory");
  938.   return _res;
  939. }
  940. static __inline void 
  941. InitVPort (BASE_PAR_DECL struct ViewPort *vp)
  942. {
  943.   BASE_EXT_DECL
  944.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  945.   register struct ViewPort *a0 __asm("a0") = vp;
  946.   __asm __volatile ("jsr a6@(-0xcc)"
  947.   : /* no output */
  948.   : "r" (a6), "r" (a0)
  949.   : "a0","a1","d0","d1", "memory");
  950. }
  951. static __inline void 
  952. InitView (BASE_PAR_DECL struct View *view)
  953. {
  954.   BASE_EXT_DECL
  955.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  956.   register struct View *a1 __asm("a1") = view;
  957.   __asm __volatile ("jsr a6@(-0x168)"
  958.   : /* no output */
  959.   : "r" (a6), "r" (a1)
  960.   : "a0","a1","d0","d1", "memory");
  961. }
  962. static __inline void 
  963. LoadRGB4 (BASE_PAR_DECL struct ViewPort *vp,UWORD *colors,long count)
  964. {
  965.   BASE_EXT_DECL
  966.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  967.   register struct ViewPort *a0 __asm("a0") = vp;
  968.   register UWORD *a1 __asm("a1") = colors;
  969.   register long d0 __asm("d0") = count;
  970.   __asm __volatile ("jsr a6@(-0xc0)"
  971.   : /* no output */
  972.   : "r" (a6), "r" (a0), "r" (a1), "r" (d0)
  973.   : "a0","a1","d0","d1", "memory");
  974. }
  975. static __inline void 
  976. LoadView (BASE_PAR_DECL struct View *view)
  977. {
  978.   BASE_EXT_DECL
  979.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  980.   register struct View *a1 __asm("a1") = view;
  981.   __asm __volatile ("jsr a6@(-0xde)"
  982.   : /* no output */
  983.   : "r" (a6), "r" (a1)
  984.   : "a0","a1","d0","d1", "memory");
  985. }
  986. static __inline void 
  987. LockLayerRom (BASE_PAR_DECL struct Layer *layer)
  988. {
  989.   BASE_EXT_DECL
  990.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  991.   register struct Layer *a5 __asm("d7") = layer;
  992.   __asm __volatile ("exg a5,d7; jsr a6@(-0x1b0); exg a5,d7"
  993.   : /* no output */
  994.   : "r" (a6), "r" (a5)
  995.   : "a0","a1","d0","d1","d7", "memory");
  996. }
  997. static __inline void 
  998. MakeVPort (BASE_PAR_DECL struct View *view,struct ViewPort *vp)
  999. {
  1000.   BASE_EXT_DECL
  1001.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1002.   register struct View *a0 __asm("a0") = view;
  1003.   register struct ViewPort *a1 __asm("a1") = vp;
  1004.   __asm __volatile ("jsr a6@(-0xd8)"
  1005.   : /* no output */
  1006.   : "r" (a6), "r" (a0), "r" (a1)
  1007.   : "a0","a1","d0","d1", "memory");
  1008. }
  1009. static __inline LONG 
  1010. ModeNotAvailable (BASE_PAR_DECL unsigned long modeID)
  1011. {
  1012.   BASE_EXT_DECL
  1013.   register LONG  _res  __asm("d0");
  1014.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1015.   register unsigned long d0 __asm("d0") = modeID;
  1016.   __asm __volatile ("jsr a6@(-0x31e)"
  1017.   : "=r" (_res)
  1018.   : "r" (a6), "r" (d0)
  1019.   : "a0","a1","d0","d1", "memory");
  1020.   return _res;
  1021. }
  1022. static __inline void 
  1023. Move (BASE_PAR_DECL struct RastPort *rp,long x,long y)
  1024. {
  1025.   BASE_EXT_DECL
  1026.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1027.   register struct RastPort *a1 __asm("a1") = rp;
  1028.   register long d0 __asm("d0") = x;
  1029.   register long d1 __asm("d1") = y;
  1030.   __asm __volatile ("jsr a6@(-0xf0)"
  1031.   : /* no output */
  1032.   : "r" (a6), "r" (a1), "r" (d0), "r" (d1)
  1033.   : "a0","a1","d0","d1", "memory");
  1034. }
  1035. static __inline void 
  1036. MoveSprite (BASE_PAR_DECL struct ViewPort *vp,struct SimpleSprite *sprite,long x,long y)
  1037. {
  1038.   BASE_EXT_DECL
  1039.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1040.   register struct ViewPort *a0 __asm("a0") = vp;
  1041.   register struct SimpleSprite *a1 __asm("a1") = sprite;
  1042.   register long d0 __asm("d0") = x;
  1043.   register long d1 __asm("d1") = y;
  1044.   __asm __volatile ("jsr a6@(-0x1aa)"
  1045.   : /* no output */
  1046.   : "r" (a6), "r" (a0), "r" (a1), "r" (d0), "r" (d1)
  1047.   : "a0","a1","d0","d1", "memory");
  1048. }
  1049. static __inline void 
  1050. MrgCop (BASE_PAR_DECL struct View *view)
  1051. {
  1052.   BASE_EXT_DECL
  1053.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1054.   register struct View *a1 __asm("a1") = view;
  1055.   __asm __volatile ("jsr a6@(-0xd2)"
  1056.   : /* no output */
  1057.   : "r" (a6), "r" (a1)
  1058.   : "a0","a1","d0","d1", "memory");
  1059. }
  1060. static __inline struct Region *
  1061. NewRegion (BASE_PAR_DECL0)
  1062. {
  1063.   BASE_EXT_DECL
  1064.   register struct Region * _res  __asm("d0");
  1065.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1066.   __asm __volatile ("jsr a6@(-0x204)"
  1067.   : "=r" (_res)
  1068.   : "r" (a6)
  1069.   : "a0","a1","d0","d1", "memory");
  1070.   return _res;
  1071. }
  1072. static __inline ULONG 
  1073. NextDisplayInfo (BASE_PAR_DECL unsigned long displayID)
  1074. {
  1075.   BASE_EXT_DECL
  1076.   register ULONG  _res  __asm("d0");
  1077.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1078.   register unsigned long d0 __asm("d0") = displayID;
  1079.   __asm __volatile ("jsr a6@(-0x2dc)"
  1080.   : "=r" (_res)
  1081.   : "r" (a6), "r" (d0)
  1082.   : "a0","a1","d0","d1", "memory");
  1083.   return _res;
  1084. }
  1085. static __inline struct TextFont *
  1086. OpenFont (BASE_PAR_DECL struct TextAttr *textAttr)
  1087. {
  1088.   BASE_EXT_DECL
  1089.   register struct TextFont * _res  __asm("d0");
  1090.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1091.   register struct TextAttr *a0 __asm("a0") = textAttr;
  1092.   __asm __volatile ("jsr a6@(-0x48)"
  1093.   : "=r" (_res)
  1094.   : "r" (a6), "r" (a0)
  1095.   : "a0","a1","d0","d1", "memory");
  1096.   return _res;
  1097. }
  1098. static __inline struct MonitorSpec *
  1099. OpenMonitor (BASE_PAR_DECL STRPTR monitorName,unsigned long displayID)
  1100. {
  1101.   BASE_EXT_DECL
  1102.   register struct MonitorSpec * _res  __asm("d0");
  1103.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1104.   register STRPTR a1 __asm("a1") = monitorName;
  1105.   register unsigned long d0 __asm("d0") = displayID;
  1106.   __asm __volatile ("jsr a6@(-0x2ca)"
  1107.   : "=r" (_res)
  1108.   : "r" (a6), "r" (a1), "r" (d0)
  1109.   : "a0","a1","d0","d1", "memory");
  1110.   return _res;
  1111. }
  1112. static __inline BOOL 
  1113. OrRectRegion (BASE_PAR_DECL struct Region *region,struct Rectangle *rectangle)
  1114. {
  1115.   BASE_EXT_DECL
  1116.   register BOOL  _res  __asm("d0");
  1117.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1118.   register struct Region *a0 __asm("a0") = region;
  1119.   register struct Rectangle *a1 __asm("a1") = rectangle;
  1120.   __asm __volatile ("jsr a6@(-0x1fe)"
  1121.   : "=r" (_res)
  1122.   : "r" (a6), "r" (a0), "r" (a1)
  1123.   : "a0","a1","d0","d1", "memory");
  1124.   return _res;
  1125. }
  1126. static __inline BOOL 
  1127. OrRegionRegion (BASE_PAR_DECL struct Region *srcRegion,struct Region *destRegion)
  1128. {
  1129.   BASE_EXT_DECL
  1130.   register BOOL  _res  __asm("d0");
  1131.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1132.   register struct Region *a0 __asm("a0") = srcRegion;
  1133.   register struct Region *a1 __asm("a1") = destRegion;
  1134.   __asm __volatile ("jsr a6@(-0x264)"
  1135.   : "=r" (_res)
  1136.   : "r" (a6), "r" (a0), "r" (a1)
  1137.   : "a0","a1","d0","d1", "memory");
  1138.   return _res;
  1139. }
  1140. static __inline void 
  1141. OwnBlitter (BASE_PAR_DECL0)
  1142. {
  1143.   BASE_EXT_DECL
  1144.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1145.   __asm __volatile ("jsr a6@(-0x1c8)"
  1146.   : /* no output */
  1147.   : "r" (a6)
  1148.   : "a0","a1","d0","d1", "memory");
  1149. }
  1150. static __inline void 
  1151. PolyDraw (BASE_PAR_DECL struct RastPort *rp,long count,WORD *polyTable)
  1152. {
  1153.   BASE_EXT_DECL
  1154.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1155.   register struct RastPort *a1 __asm("a1") = rp;
  1156.   register long d0 __asm("d0") = count;
  1157.   register WORD *a0 __asm("a0") = polyTable;
  1158.   __asm __volatile ("jsr a6@(-0x150)"
  1159.   : /* no output */
  1160.   : "r" (a6), "r" (a1), "r" (d0), "r" (a0)
  1161.   : "a0","a1","d0","d1", "memory");
  1162. }
  1163. static __inline void 
  1164. QBSBlit (BASE_PAR_DECL struct bltnode *blit)
  1165. {
  1166.   BASE_EXT_DECL
  1167.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1168.   register struct bltnode *a1 __asm("a1") = blit;
  1169.   __asm __volatile ("jsr a6@(-0x126)"
  1170.   : /* no output */
  1171.   : "r" (a6), "r" (a1)
  1172.   : "a0","a1","d0","d1", "memory");
  1173. }
  1174. static __inline void 
  1175. QBlit (BASE_PAR_DECL struct bltnode *blit)
  1176. {
  1177.   BASE_EXT_DECL
  1178.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1179.   register struct bltnode *a1 __asm("a1") = blit;
  1180.   __asm __volatile ("jsr a6@(-0x114)"
  1181.   : /* no output */
  1182.   : "r" (a6), "r" (a1)
  1183.   : "a0","a1","d0","d1", "memory");
  1184. }
  1185. static __inline ULONG 
  1186. ReadPixel (BASE_PAR_DECL struct RastPort *rp,long x,long y)
  1187. {
  1188.   BASE_EXT_DECL
  1189.   register ULONG  _res  __asm("d0");
  1190.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1191.   register struct RastPort *a1 __asm("a1") = rp;
  1192.   register long d0 __asm("d0") = x;
  1193.   register long d1 __asm("d1") = y;
  1194.   __asm __volatile ("jsr a6@(-0x13e)"
  1195.   : "=r" (_res)
  1196.   : "r" (a6), "r" (a1), "r" (d0), "r" (d1)
  1197.   : "a0","a1","d0","d1", "memory");
  1198.   return _res;
  1199. }
  1200. static __inline LONG 
  1201. ReadPixelArray8 (BASE_PAR_DECL struct RastPort *rp,unsigned long xstart,unsigned long ystart,unsigned long xstop,unsigned long ystop,UBYTE *array,struct RastPort *temprp)
  1202. {
  1203.   BASE_EXT_DECL
  1204.   register LONG  _res  __asm("d0");
  1205.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1206.   register struct RastPort *a0 __asm("a0") = rp;
  1207.   register unsigned long d0 __asm("d0") = xstart;
  1208.   register unsigned long d1 __asm("d1") = ystart;
  1209.   register unsigned long d2 __asm("d2") = xstop;
  1210.   register unsigned long d3 __asm("d3") = ystop;
  1211.   register UBYTE *a2 __asm("a2") = array;
  1212.   register struct RastPort *a1 __asm("a1") = temprp;
  1213.   __asm __volatile ("jsr a6@(-0x30c)"
  1214.   : "=r" (_res)
  1215.   : "r" (a6), "r" (a0), "r" (d0), "r" (d1), "r" (d2), "r" (d3), "r" (a2), "r" (a1)
  1216.   : "a0","a1","a2","d0","d1","d2","d3", "memory");
  1217.   return _res;
  1218. }
  1219. static __inline LONG 
  1220. ReadPixelLine8 (BASE_PAR_DECL struct RastPort *rp,unsigned long xstart,unsigned long ystart,unsigned long width,UBYTE *array,struct RastPort *tempRP)
  1221. {
  1222.   BASE_EXT_DECL
  1223.   register LONG  _res  __asm("d0");
  1224.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1225.   register struct RastPort *a0 __asm("a0") = rp;
  1226.   register unsigned long d0 __asm("d0") = xstart;
  1227.   register unsigned long d1 __asm("d1") = ystart;
  1228.   register unsigned long d2 __asm("d2") = width;
  1229.   register UBYTE *a2 __asm("a2") = array;
  1230.   register struct RastPort *a1 __asm("a1") = tempRP;
  1231.   __asm __volatile ("jsr a6@(-0x300)"
  1232.   : "=r" (_res)
  1233.   : "r" (a6), "r" (a0), "r" (d0), "r" (d1), "r" (d2), "r" (a2), "r" (a1)
  1234.   : "a0","a1","a2","d0","d1","d2", "memory");
  1235.   return _res;
  1236. }
  1237. static __inline void 
  1238. RectFill (BASE_PAR_DECL struct RastPort *rp,long xMin,long yMin,long xMax,long yMax)
  1239. {
  1240.   BASE_EXT_DECL
  1241.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1242.   register struct RastPort *a1 __asm("a1") = rp;
  1243.   register long d0 __asm("d0") = xMin;
  1244.   register long d1 __asm("d1") = yMin;
  1245.   register long d2 __asm("d2") = xMax;
  1246.   register long d3 __asm("d3") = yMax;
  1247.   __asm __volatile ("jsr a6@(-0x132)"
  1248.   : /* no output */
  1249.   : "r" (a6), "r" (a1), "r" (d0), "r" (d1), "r" (d2), "r" (d3)
  1250.   : "a0","a1","d0","d1","d2","d3", "memory");
  1251. }
  1252. static __inline void 
  1253. RemFont (BASE_PAR_DECL struct TextFont *textFont)
  1254. {
  1255.   BASE_EXT_DECL
  1256.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1257.   register struct TextFont *a1 __asm("a1") = textFont;
  1258.   __asm __volatile ("jsr a6@(-0x1e6)"
  1259.   : /* no output */
  1260.   : "r" (a6), "r" (a1)
  1261.   : "a0","a1","d0","d1", "memory");
  1262. }
  1263. static __inline void 
  1264. RemIBob (BASE_PAR_DECL struct Bob *bob,struct RastPort *rp,struct ViewPort *vp)
  1265. {
  1266.   BASE_EXT_DECL
  1267.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1268.   register struct Bob *a0 __asm("a0") = bob;
  1269.   register struct RastPort *a1 __asm("a1") = rp;
  1270.   register struct ViewPort *a2 __asm("a2") = vp;
  1271.   __asm __volatile ("jsr a6@(-0x84)"
  1272.   : /* no output */
  1273.   : "r" (a6), "r" (a0), "r" (a1), "r" (a2)
  1274.   : "a0","a1","a2","d0","d1", "memory");
  1275. }
  1276. static __inline void 
  1277. RemVSprite (BASE_PAR_DECL struct VSprite *vSprite)
  1278. {
  1279.   BASE_EXT_DECL
  1280.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1281.   register struct VSprite *a0 __asm("a0") = vSprite;
  1282.   __asm __volatile ("jsr a6@(-0x8a)"
  1283.   : /* no output */
  1284.   : "r" (a6), "r" (a0)
  1285.   : "a0","a1","d0","d1", "memory");
  1286. }
  1287. static __inline UWORD 
  1288. ScalerDiv (BASE_PAR_DECL unsigned long factor,unsigned long numerator,unsigned long denominator)
  1289. {
  1290.   BASE_EXT_DECL
  1291.   register UWORD  _res  __asm("d0");
  1292.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1293.   register unsigned long d0 __asm("d0") = factor;
  1294.   register unsigned long d1 __asm("d1") = numerator;
  1295.   register unsigned long d2 __asm("d2") = denominator;
  1296.   __asm __volatile ("jsr a6@(-0x2ac)"
  1297.   : "=r" (_res)
  1298.   : "r" (a6), "r" (d0), "r" (d1), "r" (d2)
  1299.   : "a0","a1","d0","d1","d2", "memory");
  1300.   return _res;
  1301. }
  1302. static __inline void 
  1303. ScrollRaster (BASE_PAR_DECL struct RastPort *rp,long dx,long dy,long xMin,long yMin,long xMax,long yMax)
  1304. {
  1305.   BASE_EXT_DECL
  1306.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1307.   register struct RastPort *a1 __asm("a1") = rp;
  1308.   register long d0 __asm("d0") = dx;
  1309.   register long d1 __asm("d1") = dy;
  1310.   register long d2 __asm("d2") = xMin;
  1311.   register long d3 __asm("d3") = yMin;
  1312.   register long d4 __asm("d4") = xMax;
  1313.   register long d5 __asm("d5") = yMax;
  1314.   __asm __volatile ("jsr a6@(-0x18c)"
  1315.   : /* no output */
  1316.   : "r" (a6), "r" (a1), "r" (d0), "r" (d1), "r" (d2), "r" (d3), "r" (d4), "r" (d5)
  1317.   : "a0","a1","d0","d1","d2","d3","d4","d5", "memory");
  1318. }
  1319. static __inline void 
  1320. ScrollVPort (BASE_PAR_DECL struct ViewPort *vp)
  1321. {
  1322.   BASE_EXT_DECL
  1323.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1324.   register struct ViewPort *a0 __asm("a0") = vp;
  1325.   __asm __volatile ("jsr a6@(-0x24c)"
  1326.   : /* no output */
  1327.   : "r" (a6), "r" (a0)
  1328.   : "a0","a1","d0","d1", "memory");
  1329. }
  1330. static __inline void 
  1331. SetAPen (BASE_PAR_DECL struct RastPort *rp,unsigned long pen)
  1332. {
  1333.   BASE_EXT_DECL
  1334.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1335.   register struct RastPort *a1 __asm("a1") = rp;
  1336.   register unsigned long d0 __asm("d0") = pen;
  1337.   __asm __volatile ("jsr a6@(-0x156)"
  1338.   : /* no output */
  1339.   : "r" (a6), "r" (a1), "r" (d0)
  1340.   : "a0","a1","d0","d1", "memory");
  1341. }
  1342. static __inline void 
  1343. SetBPen (BASE_PAR_DECL struct RastPort *rp,unsigned long pen)
  1344. {
  1345.   BASE_EXT_DECL
  1346.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1347.   register struct RastPort *a1 __asm("a1") = rp;
  1348.   register unsigned long d0 __asm("d0") = pen;
  1349.   __asm __volatile ("jsr a6@(-0x15c)"
  1350.   : /* no output */
  1351.   : "r" (a6), "r" (a1), "r" (d0)
  1352.   : "a0","a1","d0","d1", "memory");
  1353. }
  1354. static __inline void 
  1355. SetCollision (BASE_PAR_DECL unsigned long num,void (*routine)(),struct GelsInfo *gelsInfo)
  1356. {
  1357.   BASE_EXT_DECL
  1358.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1359.   register unsigned long d0 __asm("d0") = num;
  1360.   register void (*a0)() __asm("a0") = routine;
  1361.   register struct GelsInfo *a1 __asm("a1") = gelsInfo;
  1362.   __asm __volatile ("jsr a6@(-0x90)"
  1363.   : /* no output */
  1364.   : "r" (a6), "r" (d0), "r" (a0), "r" (a1)
  1365.   : "a0","a1","d0","d1", "memory");
  1366. }
  1367. static __inline void 
  1368. SetDrMd (BASE_PAR_DECL struct RastPort *rp,unsigned long drawMode)
  1369. {
  1370.   BASE_EXT_DECL
  1371.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1372.   register struct RastPort *a1 __asm("a1") = rp;
  1373.   register unsigned long d0 __asm("d0") = drawMode;
  1374.   __asm __volatile ("jsr a6@(-0x162)"
  1375.   : /* no output */
  1376.   : "r" (a6), "r" (a1), "r" (d0)
  1377.   : "a0","a1","d0","d1", "memory");
  1378. }
  1379. static __inline LONG 
  1380. SetFont (BASE_PAR_DECL struct RastPort *rp,struct TextFont *textFont)
  1381. {
  1382.   BASE_EXT_DECL
  1383.   register LONG  _res  __asm("d0");
  1384.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1385.   register struct RastPort *a1 __asm("a1") = rp;
  1386.   register struct TextFont *a0 __asm("a0") = textFont;
  1387.   __asm __volatile ("jsr a6@(-0x42)"
  1388.   : "=r" (_res)
  1389.   : "r" (a6), "r" (a1), "r" (a0)
  1390.   : "a0","a1","d0","d1", "memory");
  1391.   return _res;
  1392. }
  1393. static __inline void 
  1394. SetRGB4 (BASE_PAR_DECL struct ViewPort *vp,long index,unsigned long red,unsigned long green,unsigned long blue)
  1395. {
  1396.   BASE_EXT_DECL
  1397.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1398.   register struct ViewPort *a0 __asm("a0") = vp;
  1399.   register long d0 __asm("d0") = index;
  1400.   register unsigned long d1 __asm("d1") = red;
  1401.   register unsigned long d2 __asm("d2") = green;
  1402.   register unsigned long d3 __asm("d3") = blue;
  1403.   __asm __volatile ("jsr a6@(-0x120)"
  1404.   : /* no output */
  1405.   : "r" (a6), "r" (a0), "r" (d0), "r" (d1), "r" (d2), "r" (d3)
  1406.   : "a0","a1","d0","d1","d2","d3", "memory");
  1407. }
  1408. static __inline void 
  1409. SetRGB4CM (BASE_PAR_DECL struct ColorMap *colorMap,long index,unsigned long red,unsigned long green,unsigned long blue)
  1410. {
  1411.   BASE_EXT_DECL
  1412.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1413.   register struct ColorMap *a0 __asm("a0") = colorMap;
  1414.   register long d0 __asm("d0") = index;
  1415.   register unsigned long d1 __asm("d1") = red;
  1416.   register unsigned long d2 __asm("d2") = green;
  1417.   register unsigned long d3 __asm("d3") = blue;
  1418.   __asm __volatile ("jsr a6@(-0x276)"
  1419.   : /* no output */
  1420.   : "r" (a6), "r" (a0), "r" (d0), "r" (d1), "r" (d2), "r" (d3)
  1421.   : "a0","a1","d0","d1","d2","d3", "memory");
  1422. }
  1423. static __inline void 
  1424. SetRast (BASE_PAR_DECL struct RastPort *rp,unsigned long pen)
  1425. {
  1426.   BASE_EXT_DECL
  1427.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1428.   register struct RastPort *a1 __asm("a1") = rp;
  1429.   register unsigned long d0 __asm("d0") = pen;
  1430.   __asm __volatile ("jsr a6@(-0xea)"
  1431.   : /* no output */
  1432.   : "r" (a6), "r" (a1), "r" (d0)
  1433.   : "a0","a1","d0","d1", "memory");
  1434. }
  1435. static __inline ULONG 
  1436. SetSoftStyle (BASE_PAR_DECL struct RastPort *rp,unsigned long style,unsigned long enable)
  1437. {
  1438.   BASE_EXT_DECL
  1439.   register ULONG  _res  __asm("d0");
  1440.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1441.   register struct RastPort *a1 __asm("a1") = rp;
  1442.   register unsigned long d0 __asm("d0") = style;
  1443.   register unsigned long d1 __asm("d1") = enable;
  1444.   __asm __volatile ("jsr a6@(-0x5a)"
  1445.   : "=r" (_res)
  1446.   : "r" (a6), "r" (a1), "r" (d0), "r" (d1)
  1447.   : "a0","a1","d0","d1", "memory");
  1448.   return _res;
  1449. }
  1450. static __inline void 
  1451. SortGList (BASE_PAR_DECL struct RastPort *rp)
  1452. {
  1453.   BASE_EXT_DECL
  1454.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1455.   register struct RastPort *a1 __asm("a1") = rp;
  1456.   __asm __volatile ("jsr a6@(-0x96)"
  1457.   : /* no output */
  1458.   : "r" (a6), "r" (a1)
  1459.   : "a0","a1","d0","d1", "memory");
  1460. }
  1461. static __inline void 
  1462. StripFont (BASE_PAR_DECL struct TextFont *font)
  1463. {
  1464.   BASE_EXT_DECL
  1465.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1466.   register struct TextFont *a0 __asm("a0") = font;
  1467.   __asm __volatile ("jsr a6@(-0x336)"
  1468.   : /* no output */
  1469.   : "r" (a6), "r" (a0)
  1470.   : "a0","a1","d0","d1", "memory");
  1471. }
  1472. static __inline void 
  1473. SyncSBitMap (BASE_PAR_DECL struct Layer *layer)
  1474. {
  1475.   BASE_EXT_DECL
  1476.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1477.   register struct Layer *a0 __asm("a0") = layer;
  1478.   __asm __volatile ("jsr a6@(-0x1bc)"
  1479.   : /* no output */
  1480.   : "r" (a6), "r" (a0)
  1481.   : "a0","a1","d0","d1", "memory");
  1482. }
  1483. static __inline LONG 
  1484. Text (BASE_PAR_DECL struct RastPort *rp,STRPTR string,unsigned long count)
  1485. {
  1486.   BASE_EXT_DECL
  1487.   register LONG  _res  __asm("d0");
  1488.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1489.   register struct RastPort *a1 __asm("a1") = rp;
  1490.   register STRPTR a0 __asm("a0") = string;
  1491.   register unsigned long d0 __asm("d0") = count;
  1492.   __asm __volatile ("jsr a6@(-0x3c)"
  1493.   : "=r" (_res)
  1494.   : "r" (a6), "r" (a1), "r" (a0), "r" (d0)
  1495.   : "a0","a1","d0","d1", "memory");
  1496.   return _res;
  1497. }
  1498. static __inline WORD 
  1499. TextExtent (BASE_PAR_DECL struct RastPort *rp,STRPTR string,long count,struct TextExtent *textExtent)
  1500. {
  1501.   BASE_EXT_DECL
  1502.   register WORD  _res  __asm("d0");
  1503.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1504.   register struct RastPort *a1 __asm("a1") = rp;
  1505.   register STRPTR a0 __asm("a0") = string;
  1506.   register long d0 __asm("d0") = count;
  1507.   register struct TextExtent *a2 __asm("a2") = textExtent;
  1508.   __asm __volatile ("jsr a6@(-0x2b2)"
  1509.   : "=r" (_res)
  1510.   : "r" (a6), "r" (a1), "r" (a0), "r" (d0), "r" (a2)
  1511.   : "a0","a1","a2","d0","d1", "memory");
  1512.   return _res;
  1513. }
  1514. static __inline ULONG 
  1515. TextFit (BASE_PAR_DECL struct RastPort *rp,STRPTR string,unsigned long strLen,struct TextExtent *textExtent,struct TextExtent *constrainingExtent,long strDirection,unsigned long constrainingBitWidth,unsigned long constrainingBitHeight)
  1516. {
  1517.   BASE_EXT_DECL
  1518.   register ULONG  _res  __asm("d0");
  1519.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1520.   register struct RastPort *a1 __asm("a1") = rp;
  1521.   register STRPTR a0 __asm("a0") = string;
  1522.   register unsigned long d0 __asm("d0") = strLen;
  1523.   register struct TextExtent *a2 __asm("a2") = textExtent;
  1524.   register struct TextExtent *a3 __asm("a3") = constrainingExtent;
  1525.   register long d1 __asm("d1") = strDirection;
  1526.   register unsigned long d2 __asm("d2") = constrainingBitWidth;
  1527.   register unsigned long d3 __asm("d3") = constrainingBitHeight;
  1528.   __asm __volatile ("jsr a6@(-0x2b8)"
  1529.   : "=r" (_res)
  1530.   : "r" (a6), "r" (a1), "r" (a0), "r" (d0), "r" (a2), "r" (a3), "r" (d1), "r" (d2), "r" (d3)
  1531.   : "a0","a1","a2","a3","d0","d1","d2","d3", "memory");
  1532.   return _res;
  1533. }
  1534. static __inline WORD 
  1535. TextLength (BASE_PAR_DECL struct RastPort *rp,STRPTR string,unsigned long count)
  1536. {
  1537.   BASE_EXT_DECL
  1538.   register WORD  _res  __asm("d0");
  1539.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1540.   register struct RastPort *a1 __asm("a1") = rp;
  1541.   register STRPTR a0 __asm("a0") = string;
  1542.   register unsigned long d0 __asm("d0") = count;
  1543.   __asm __volatile ("jsr a6@(-0x36)"
  1544.   : "=r" (_res)
  1545.   : "r" (a6), "r" (a1), "r" (a0), "r" (d0)
  1546.   : "a0","a1","d0","d1", "memory");
  1547.   return _res;
  1548. }
  1549. static __inline struct CopList *
  1550. UCopperListInit (BASE_PAR_DECL struct UCopList *uCopList,long n)
  1551. {
  1552.   BASE_EXT_DECL
  1553.   register struct CopList * _res  __asm("d0");
  1554.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1555.   register struct UCopList *a0 __asm("a0") = uCopList;
  1556.   register long d0 __asm("d0") = n;
  1557.   __asm __volatile ("jsr a6@(-0x252)"
  1558.   : "=r" (_res)
  1559.   : "r" (a6), "r" (a0), "r" (d0)
  1560.   : "a0","a1","d0","d1", "memory");
  1561.   return _res;
  1562. }
  1563. static __inline void 
  1564. UnlockLayerRom (BASE_PAR_DECL struct Layer *layer)
  1565. {
  1566.   BASE_EXT_DECL
  1567.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1568.   register struct Layer *a5 __asm("d7") = layer;
  1569.   __asm __volatile ("exg a5,d7; jsr a6@(-0x1b6); exg a5,d7"
  1570.   : /* no output */
  1571.   : "r" (a6), "r" (a5)
  1572.   : "a0","a1","d0","d1","d7", "memory");
  1573. }
  1574. static __inline LONG 
  1575. VBeamPos (BASE_PAR_DECL0)
  1576. {
  1577.   BASE_EXT_DECL
  1578.   register LONG  _res  __asm("d0");
  1579.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1580.   __asm __volatile ("jsr a6@(-0x180)"
  1581.   : "=r" (_res)
  1582.   : "r" (a6)
  1583.   : "a0","a1","d0","d1", "memory");
  1584.   return _res;
  1585. }
  1586. static __inline BOOL 
  1587. VideoControl (BASE_PAR_DECL struct ColorMap *colorMap,struct TagItem *tagarray)
  1588. {
  1589.   BASE_EXT_DECL
  1590.   register BOOL  _res  __asm("d0");
  1591.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1592.   register struct ColorMap *a0 __asm("a0") = colorMap;
  1593.   register struct TagItem *a1 __asm("a1") = tagarray;
  1594.   __asm __volatile ("jsr a6@(-0x2c4)"
  1595.   : "=r" (_res)
  1596.   : "r" (a6), "r" (a0), "r" (a1)
  1597.   : "a0","a1","d0","d1", "memory");
  1598.   return _res;
  1599. }
  1600. #ifndef NO_INLINE_STDARG
  1601. #define VideoControlTags(a0, tags...) \
  1602.   ({ struct TagItem _tags[] = { tags }; VideoControl ((a0), _tags); })
  1603. #endif /* not NO_INLINE_STDARG */
  1604. static __inline void 
  1605. WaitBOVP (BASE_PAR_DECL struct ViewPort *vp)
  1606. {
  1607.   BASE_EXT_DECL
  1608.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1609.   register struct ViewPort *a0 __asm("a0") = vp;
  1610.   __asm __volatile ("jsr a6@(-0x192)"
  1611.   : /* no output */
  1612.   : "r" (a6), "r" (a0)
  1613.   : "a0","a1","d0","d1", "memory");
  1614. }
  1615. static __inline void 
  1616. WaitBlit (BASE_PAR_DECL0)
  1617. {
  1618.   BASE_EXT_DECL
  1619.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1620.   __asm __volatile ("jsr a6@(-0xe4)"
  1621.   : /* no output */
  1622.   : "r" (a6)
  1623.   : "a0","a1","d0","d1", "memory");
  1624. }
  1625. static __inline void 
  1626. WaitTOF (BASE_PAR_DECL0)
  1627. {
  1628.   BASE_EXT_DECL
  1629.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1630.   __asm __volatile ("jsr a6@(-0x10e)"
  1631.   : /* no output */
  1632.   : "r" (a6)
  1633.   : "a0","a1","d0","d1", "memory");
  1634. }
  1635. static __inline WORD 
  1636. WeighTAMatch (BASE_PAR_DECL struct TextAttr *reqTextAttr,struct TextAttr *targetTextAttr,struct TagItem *targetTags)
  1637. {
  1638.   BASE_EXT_DECL
  1639.   register WORD  _res  __asm("d0");
  1640.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1641.   register struct TextAttr *a0 __asm("a0") = reqTextAttr;
  1642.   register struct TextAttr *a1 __asm("a1") = targetTextAttr;
  1643.   register struct TagItem *a2 __asm("a2") = targetTags;
  1644.   __asm __volatile ("jsr a6@(-0x324)"
  1645.   : "=r" (_res)
  1646.   : "r" (a6), "r" (a0), "r" (a1), "r" (a2)
  1647.   : "a0","a1","a2","d0","d1", "memory");
  1648.   return _res;
  1649. }
  1650. #ifndef NO_INLINE_STDARG
  1651. #define WeighTAMatchTags(a0, a1, tags...) \
  1652.   ({ struct TagItem _tags[] = { tags }; WeighTAMatch ((a0), (a1), _tags); })
  1653. #endif /* not NO_INLINE_STDARG */
  1654. static __inline LONG 
  1655. WritePixel (BASE_PAR_DECL struct RastPort *rp,long x,long y)
  1656. {
  1657.   BASE_EXT_DECL
  1658.   register LONG  _res  __asm("d0");
  1659.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1660.   register struct RastPort *a1 __asm("a1") = rp;
  1661.   register long d0 __asm("d0") = x;
  1662.   register long d1 __asm("d1") = y;
  1663.   __asm __volatile ("jsr a6@(-0x144)"
  1664.   : "=r" (_res)
  1665.   : "r" (a6), "r" (a1), "r" (d0), "r" (d1)
  1666.   : "a0","a1","d0","d1", "memory");
  1667.   return _res;
  1668. }
  1669. static __inline LONG 
  1670. WritePixelArray8 (BASE_PAR_DECL struct RastPort *rp,unsigned long xstart,unsigned long ystart,unsigned long xstop,unsigned long ystop,UBYTE *array,struct RastPort *temprp)
  1671. {
  1672.   BASE_EXT_DECL
  1673.   register LONG  _res  __asm("d0");
  1674.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1675.   register struct RastPort *a0 __asm("a0") = rp;
  1676.   register unsigned long d0 __asm("d0") = xstart;
  1677.   register unsigned long d1 __asm("d1") = ystart;
  1678.   register unsigned long d2 __asm("d2") = xstop;
  1679.   register unsigned long d3 __asm("d3") = ystop;
  1680.   register UBYTE *a2 __asm("a2") = array;
  1681.   register struct RastPort *a1 __asm("a1") = temprp;
  1682.   __asm __volatile ("jsr a6@(-0x312)"
  1683.   : "=r" (_res)
  1684.   : "r" (a6), "r" (a0), "r" (d0), "r" (d1), "r" (d2), "r" (d3), "r" (a2), "r" (a1)
  1685.   : "a0","a1","a2","d0","d1","d2","d3", "memory");
  1686.   return _res;
  1687. }
  1688. static __inline LONG 
  1689. WritePixelLine8 (BASE_PAR_DECL struct RastPort *rp,unsigned long xstart,unsigned long ystart,unsigned long width,UBYTE *array,struct RastPort *tempRP)
  1690. {
  1691.   BASE_EXT_DECL
  1692.   register LONG  _res  __asm("d0");
  1693.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1694.   register struct RastPort *a0 __asm("a0") = rp;
  1695.   register unsigned long d0 __asm("d0") = xstart;
  1696.   register unsigned long d1 __asm("d1") = ystart;
  1697.   register unsigned long d2 __asm("d2") = width;
  1698.   register UBYTE *a2 __asm("a2") = array;
  1699.   register struct RastPort *a1 __asm("a1") = tempRP;
  1700.   __asm __volatile ("jsr a6@(-0x306)"
  1701.   : "=r" (_res)
  1702.   : "r" (a6), "r" (a0), "r" (d0), "r" (d1), "r" (d2), "r" (a2), "r" (a1)
  1703.   : "a0","a1","a2","d0","d1","d2", "memory");
  1704.   return _res;
  1705. }
  1706. static __inline BOOL 
  1707. XorRectRegion (BASE_PAR_DECL struct Region *region,struct Rectangle *rectangle)
  1708. {
  1709.   BASE_EXT_DECL
  1710.   register BOOL  _res  __asm("d0");
  1711.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1712.   register struct Region *a0 __asm("a0") = region;
  1713.   register struct Rectangle *a1 __asm("a1") = rectangle;
  1714.   __asm __volatile ("jsr a6@(-0x22e)"
  1715.   : "=r" (_res)
  1716.   : "r" (a6), "r" (a0), "r" (a1)
  1717.   : "a0","a1","d0","d1", "memory");
  1718.   return _res;
  1719. }
  1720. static __inline BOOL 
  1721. XorRegionRegion (BASE_PAR_DECL struct Region *srcRegion,struct Region *destRegion)
  1722. {
  1723.   BASE_EXT_DECL
  1724.   register BOOL  _res  __asm("d0");
  1725.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1726.   register struct Region *a0 __asm("a0") = srcRegion;
  1727.   register struct Region *a1 __asm("a1") = destRegion;
  1728.   __asm __volatile ("jsr a6@(-0x26a)"
  1729.   : "=r" (_res)
  1730.   : "r" (a6), "r" (a0), "r" (a1)
  1731.   : "a0","a1","d0","d1", "memory");
  1732.   return _res;
  1733. }
  1734. #undef BASE_EXT_DECL
  1735. #undef BASE_PAR_DECL
  1736. #undef BASE_PAR_DECL0
  1737. #undef BASE_NAME
  1738.  
  1739. __END_DECLS
  1740.  
  1741. #endif /* _INLINE_GRAPHICS_H */
  1742.