home *** CD-ROM | disk | FTP | other *** search
/ Amiga Elysian Archive / AmigaElysianArchive.iso / prog / c / gcc233.lha / os-include / inline / graphics.h < prev    next >
C/C++ Source or Header  |  1992-12-29  |  75KB  |  2,268 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 struct BitMap *
  69. AllocBitMap (BASE_PAR_DECL unsigned long sizex,unsigned long sizey,unsigned long depth,unsigned long flags,struct BitMap *friend_bitmap)
  70. {
  71.   BASE_EXT_DECL
  72.   register struct BitMap * _res  __asm("d0");
  73.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  74.   register unsigned long d0 __asm("d0") = sizex;
  75.   register unsigned long d1 __asm("d1") = sizey;
  76.   register unsigned long d2 __asm("d2") = depth;
  77.   register unsigned long d3 __asm("d3") = flags;
  78.   register struct BitMap *a0 __asm("a0") = friend_bitmap;
  79.   __asm __volatile ("jsr a6@(-0x396)"
  80.   : "=r" (_res)
  81.   : "r" (a6), "r" (d0), "r" (d1), "r" (d2), "r" (d3), "r" (a0)
  82.   : "a0","a1","d0","d1","d2","d3", "memory");
  83.   return _res;
  84. }
  85. static __inline struct DBufInfo *
  86. AllocDBufInfo (BASE_PAR_DECL struct ViewPort *vp)
  87. {
  88.   BASE_EXT_DECL
  89.   register struct DBufInfo * _res  __asm("d0");
  90.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  91.   register struct ViewPort *a0 __asm("a0") = vp;
  92.   __asm __volatile ("jsr a6@(-0x3c6)"
  93.   : "=r" (_res)
  94.   : "r" (a6), "r" (a0)
  95.   : "a0","a1","d0","d1", "memory");
  96.   return _res;
  97. }
  98. static __inline PLANEPTR 
  99. AllocRaster (BASE_PAR_DECL unsigned long width,unsigned long height)
  100. {
  101.   BASE_EXT_DECL
  102.   register PLANEPTR  _res  __asm("d0");
  103.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  104.   register unsigned long d0 __asm("d0") = width;
  105.   register unsigned long d1 __asm("d1") = height;
  106.   __asm __volatile ("jsr a6@(-0x1ec)"
  107.   : "=r" (_res)
  108.   : "r" (a6), "r" (d0), "r" (d1)
  109.   : "a0","a1","d0","d1", "memory");
  110.   return _res;
  111. }
  112. static __inline struct ExtSprite *
  113. AllocSpriteDataA (BASE_PAR_DECL struct BitMap *bm,struct TagItem *tags)
  114. {
  115.   BASE_EXT_DECL
  116.   register struct ExtSprite * _res  __asm("d0");
  117.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  118.   register struct BitMap *a2 __asm("a2") = bm;
  119.   register struct TagItem *a1 __asm("a1") = tags;
  120.   __asm __volatile ("jsr a6@(-0x3fc)"
  121.   : "=r" (_res)
  122.   : "r" (a6), "r" (a2), "r" (a1)
  123.   : "a0","a1","a2","d0","d1", "memory");
  124.   return _res;
  125. }
  126. static __inline void 
  127. AndRectRegion (BASE_PAR_DECL struct Region *region,struct Rectangle *rectangle)
  128. {
  129.   BASE_EXT_DECL
  130.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  131.   register struct Region *a0 __asm("a0") = region;
  132.   register struct Rectangle *a1 __asm("a1") = rectangle;
  133.   __asm __volatile ("jsr a6@(-0x1f8)"
  134.   : /* no output */
  135.   : "r" (a6), "r" (a0), "r" (a1)
  136.   : "a0","a1","d0","d1", "memory");
  137. }
  138. static __inline BOOL 
  139. AndRegionRegion (BASE_PAR_DECL struct Region *srcRegion,struct Region *destRegion)
  140. {
  141.   BASE_EXT_DECL
  142.   register BOOL  _res  __asm("d0");
  143.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  144.   register struct Region *a0 __asm("a0") = srcRegion;
  145.   register struct Region *a1 __asm("a1") = destRegion;
  146.   __asm __volatile ("jsr a6@(-0x270)"
  147.   : "=r" (_res)
  148.   : "r" (a6), "r" (a0), "r" (a1)
  149.   : "a0","a1","d0","d1", "memory");
  150.   return _res;
  151. }
  152. static __inline void 
  153. Animate (BASE_PAR_DECL struct AnimOb **anKey,struct RastPort *rp)
  154. {
  155.   BASE_EXT_DECL
  156.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  157.   register struct AnimOb **a0 __asm("a0") = anKey;
  158.   register struct RastPort *a1 __asm("a1") = rp;
  159.   __asm __volatile ("jsr a6@(-0xa2)"
  160.   : /* no output */
  161.   : "r" (a6), "r" (a0), "r" (a1)
  162.   : "a0","a1","d0","d1", "memory");
  163. }
  164. static __inline LONG 
  165. AreaDraw (BASE_PAR_DECL struct RastPort *rp,long x,long y)
  166. {
  167.   BASE_EXT_DECL
  168.   register LONG  _res  __asm("d0");
  169.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  170.   register struct RastPort *a1 __asm("a1") = rp;
  171.   register long d0 __asm("d0") = x;
  172.   register long d1 __asm("d1") = y;
  173.   __asm __volatile ("jsr a6@(-0x102)"
  174.   : "=r" (_res)
  175.   : "r" (a6), "r" (a1), "r" (d0), "r" (d1)
  176.   : "a0","a1","d0","d1", "memory");
  177.   return _res;
  178. }
  179. static __inline LONG 
  180. AreaEllipse (BASE_PAR_DECL struct RastPort *rp,long xCenter,long yCenter,long a,long b)
  181. {
  182.   BASE_EXT_DECL
  183.   register LONG  _res  __asm("d0");
  184.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  185.   register struct RastPort *a1 __asm("a1") = rp;
  186.   register long d0 __asm("d0") = xCenter;
  187.   register long d1 __asm("d1") = yCenter;
  188.   register long d2 __asm("d2") = a;
  189.   register long d3 __asm("d3") = b;
  190.   __asm __volatile ("jsr a6@(-0xba)"
  191.   : "=r" (_res)
  192.   : "r" (a6), "r" (a1), "r" (d0), "r" (d1), "r" (d2), "r" (d3)
  193.   : "a0","a1","d0","d1","d2","d3", "memory");
  194.   return _res;
  195. }
  196. static __inline LONG 
  197. AreaEnd (BASE_PAR_DECL struct RastPort *rp)
  198. {
  199.   BASE_EXT_DECL
  200.   register LONG  _res  __asm("d0");
  201.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  202.   register struct RastPort *a1 __asm("a1") = rp;
  203.   __asm __volatile ("jsr a6@(-0x108)"
  204.   : "=r" (_res)
  205.   : "r" (a6), "r" (a1)
  206.   : "a0","a1","d0","d1", "memory");
  207.   return _res;
  208. }
  209. static __inline LONG 
  210. AreaMove (BASE_PAR_DECL struct RastPort *rp,long x,long y)
  211. {
  212.   BASE_EXT_DECL
  213.   register LONG  _res  __asm("d0");
  214.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  215.   register struct RastPort *a1 __asm("a1") = rp;
  216.   register long d0 __asm("d0") = x;
  217.   register long d1 __asm("d1") = y;
  218.   __asm __volatile ("jsr a6@(-0xfc)"
  219.   : "=r" (_res)
  220.   : "r" (a6), "r" (a1), "r" (d0), "r" (d1)
  221.   : "a0","a1","d0","d1", "memory");
  222.   return _res;
  223. }
  224. static __inline void 
  225. AskFont (BASE_PAR_DECL struct RastPort *rp,struct TextAttr *textAttr)
  226. {
  227.   BASE_EXT_DECL
  228.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  229.   register struct RastPort *a1 __asm("a1") = rp;
  230.   register struct TextAttr *a0 __asm("a0") = textAttr;
  231.   __asm __volatile ("jsr a6@(-0x1da)"
  232.   : /* no output */
  233.   : "r" (a6), "r" (a1), "r" (a0)
  234.   : "a0","a1","d0","d1", "memory");
  235. }
  236. static __inline ULONG 
  237. AskSoftStyle (BASE_PAR_DECL struct RastPort *rp)
  238. {
  239.   BASE_EXT_DECL
  240.   register ULONG  _res  __asm("d0");
  241.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  242.   register struct RastPort *a1 __asm("a1") = rp;
  243.   __asm __volatile ("jsr a6@(-0x54)"
  244.   : "=r" (_res)
  245.   : "r" (a6), "r" (a1)
  246.   : "a0","a1","d0","d1", "memory");
  247.   return _res;
  248. }
  249. static __inline LONG 
  250. AttachPalExtra (BASE_PAR_DECL struct ColorMap *cm,struct ViewPort *vp)
  251. {
  252.   BASE_EXT_DECL
  253.   register LONG  _res  __asm("d0");
  254.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  255.   register struct ColorMap *a0 __asm("a0") = cm;
  256.   register struct ViewPort *a1 __asm("a1") = vp;
  257.   __asm __volatile ("jsr a6@(-0x342)"
  258.   : "=r" (_res)
  259.   : "r" (a6), "r" (a0), "r" (a1)
  260.   : "a0","a1","d0","d1", "memory");
  261.   return _res;
  262. }
  263. static __inline BOOL 
  264. AttemptLockLayerRom (BASE_PAR_DECL struct Layer *layer)
  265. {
  266.   BASE_EXT_DECL
  267.   register BOOL  _res  __asm("d0");
  268.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  269.   register struct Layer *a5 __asm("d7") = layer;
  270.   __asm __volatile ("exg d7,a5; jsr a6@(-0x28e); exg d7,a5"
  271.   : "=r" (_res)
  272.   : "r" (a6), "r" (a5)
  273.   : "a0","a1","d0","d1","d7", "memory");
  274.   return _res;
  275. }
  276. static __inline ULONG 
  277. BestModeIDA (BASE_PAR_DECL struct TagItem *tags)
  278. {
  279.   BASE_EXT_DECL
  280.   register ULONG  _res  __asm("d0");
  281.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  282.   register struct TagItem *a0 __asm("a0") = tags;
  283.   __asm __volatile ("jsr a6@(-0x41a)"
  284.   : "=r" (_res)
  285.   : "r" (a6), "r" (a0)
  286.   : "a0","a1","d0","d1", "memory");
  287.   return _res;
  288. }
  289. static __inline void 
  290. BitMapScale (BASE_PAR_DECL struct BitScaleArgs *bitScaleArgs)
  291. {
  292.   BASE_EXT_DECL
  293.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  294.   register struct BitScaleArgs *a0 __asm("a0") = bitScaleArgs;
  295.   __asm __volatile ("jsr a6@(-0x2a6)"
  296.   : /* no output */
  297.   : "r" (a6), "r" (a0)
  298.   : "a0","a1","d0","d1", "memory");
  299. }
  300. static __inline LONG 
  301. 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)
  302. {
  303.   BASE_EXT_DECL
  304.   register LONG  _res  __asm("d0");
  305.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  306.   register struct BitMap *a0 __asm("a0") = srcBitMap;
  307.   register long d0 __asm("d0") = xSrc;
  308.   register long d1 __asm("d1") = ySrc;
  309.   register struct BitMap *a1 __asm("a1") = destBitMap;
  310.   register long d2 __asm("d2") = xDest;
  311.   register long d3 __asm("d3") = yDest;
  312.   register long d4 __asm("d4") = xSize;
  313.   register long d5 __asm("d5") = ySize;
  314.   register unsigned long d6 __asm("d6") = minterm;
  315.   register unsigned long d7 __asm("d7") = mask;
  316.   register PLANEPTR a2 __asm("a2") = tempA;
  317.   __asm __volatile ("jsr a6@(-0x1e)"
  318.   : "=r" (_res)
  319.   : "r" (a6), "r" (a0), "r" (d0), "r" (d1), "r" (a1), "r" (d2), "r" (d3), "r" (d4), "r" (d5), "r" (d6), "r" (d7), "r" (a2)
  320.   : "a0","a1","a2","d0","d1","d2","d3","d4","d5","d6","d7", "memory");
  321.   return _res;
  322. }
  323. static __inline void 
  324. 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)
  325. {
  326.   BASE_EXT_DECL
  327.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  328.   register struct BitMap *a0 __asm("a0") = srcBitMap;
  329.   register long d0 __asm("d0") = xSrc;
  330.   register long d1 __asm("d1") = ySrc;
  331.   register struct RastPort *a1 __asm("a1") = destRP;
  332.   register long d2 __asm("d2") = xDest;
  333.   register long d3 __asm("d3") = yDest;
  334.   register long d4 __asm("d4") = xSize;
  335.   register long d5 __asm("d5") = ySize;
  336.   register unsigned long d6 __asm("d6") = minterm;
  337.   __asm __volatile ("jsr a6@(-0x25e)"
  338.   : /* no output */
  339.   : "r" (a6), "r" (a0), "r" (d0), "r" (d1), "r" (a1), "r" (d2), "r" (d3), "r" (d4), "r" (d5), "r" (d6)
  340.   : "a0","a1","d0","d1","d2","d3","d4","d5","d6", "memory");
  341. }
  342. static __inline void 
  343. BltClear (BASE_PAR_DECL PLANEPTR memBlock,unsigned long byteCount,unsigned long flags)
  344. {
  345.   BASE_EXT_DECL
  346.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  347.   register PLANEPTR a1 __asm("a1") = memBlock;
  348.   register unsigned long d0 __asm("d0") = byteCount;
  349.   register unsigned long d1 __asm("d1") = flags;
  350.   __asm __volatile ("jsr a6@(-0x12c)"
  351.   : /* no output */
  352.   : "r" (a6), "r" (a1), "r" (d0), "r" (d1)
  353.   : "a0","a1","d0","d1", "memory");
  354. }
  355. static __inline void 
  356. 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)
  357. {
  358.   BASE_EXT_DECL
  359.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  360.   register struct BitMap *a0 __asm("a0") = srcBitMap;
  361.   register long d0 __asm("d0") = xSrc;
  362.   register long d1 __asm("d1") = ySrc;
  363.   register struct RastPort *a1 __asm("a1") = destRP;
  364.   register long d2 __asm("d2") = xDest;
  365.   register long d3 __asm("d3") = yDest;
  366.   register long d4 __asm("d4") = xSize;
  367.   register long d5 __asm("d5") = ySize;
  368.   register unsigned long d6 __asm("d6") = minterm;
  369.   register PLANEPTR a2 __asm("a2") = bltMask;
  370.   __asm __volatile ("jsr a6@(-0x27c)"
  371.   : /* no output */
  372.   : "r" (a6), "r" (a0), "r" (d0), "r" (d1), "r" (a1), "r" (d2), "r" (d3), "r" (d4), "r" (d5), "r" (d6), "r" (a2)
  373.   : "a0","a1","a2","d0","d1","d2","d3","d4","d5","d6", "memory");
  374. }
  375. static __inline void 
  376. BltPattern (BASE_PAR_DECL struct RastPort *rp,PLANEPTR mask,long xMin,long yMin,long xMax,long yMax,unsigned long maskBPR)
  377. {
  378.   BASE_EXT_DECL
  379.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  380.   register struct RastPort *a1 __asm("a1") = rp;
  381.   register PLANEPTR a0 __asm("a0") = mask;
  382.   register long d0 __asm("d0") = xMin;
  383.   register long d1 __asm("d1") = yMin;
  384.   register long d2 __asm("d2") = xMax;
  385.   register long d3 __asm("d3") = yMax;
  386.   register unsigned long d4 __asm("d4") = maskBPR;
  387.   __asm __volatile ("jsr a6@(-0x138)"
  388.   : /* no output */
  389.   : "r" (a6), "r" (a1), "r" (a0), "r" (d0), "r" (d1), "r" (d2), "r" (d3), "r" (d4)
  390.   : "a0","a1","d0","d1","d2","d3","d4", "memory");
  391. }
  392. static __inline void 
  393. BltTemplate (BASE_PAR_DECL PLANEPTR source,long xSrc,long srcMod,struct RastPort *destRP,long xDest,long yDest,long xSize,long ySize)
  394. {
  395.   BASE_EXT_DECL
  396.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  397.   register PLANEPTR a0 __asm("a0") = source;
  398.   register long d0 __asm("d0") = xSrc;
  399.   register long d1 __asm("d1") = srcMod;
  400.   register struct RastPort *a1 __asm("a1") = destRP;
  401.   register long d2 __asm("d2") = xDest;
  402.   register long d3 __asm("d3") = yDest;
  403.   register long d4 __asm("d4") = xSize;
  404.   register long d5 __asm("d5") = ySize;
  405.   __asm __volatile ("jsr a6@(-0x24)"
  406.   : /* no output */
  407.   : "r" (a6), "r" (a0), "r" (d0), "r" (d1), "r" (a1), "r" (d2), "r" (d3), "r" (d4), "r" (d5)
  408.   : "a0","a1","d0","d1","d2","d3","d4","d5", "memory");
  409. }
  410. static __inline void 
  411. CBump (BASE_PAR_DECL struct UCopList *copList)
  412. {
  413.   BASE_EXT_DECL
  414.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  415.   register struct UCopList *a1 __asm("a1") = copList;
  416.   __asm __volatile ("jsr a6@(-0x16e)"
  417.   : /* no output */
  418.   : "r" (a6), "r" (a1)
  419.   : "a0","a1","d0","d1", "memory");
  420. }
  421. static __inline void 
  422. CMove (BASE_PAR_DECL struct UCopList *copList,APTR destination,long data)
  423. {
  424.   BASE_EXT_DECL
  425.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  426.   register struct UCopList *a1 __asm("a1") = copList;
  427.   register APTR d0 __asm("d0") = destination;
  428.   register long d1 __asm("d1") = data;
  429.   __asm __volatile ("jsr a6@(-0x174)"
  430.   : /* no output */
  431.   : "r" (a6), "r" (a1), "r" (d0), "r" (d1)
  432.   : "a0","a1","d0","d1", "memory");
  433. }
  434. static __inline void 
  435. CWait (BASE_PAR_DECL struct UCopList *copList,long v,long h)
  436. {
  437.   BASE_EXT_DECL
  438.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  439.   register struct UCopList *a1 __asm("a1") = copList;
  440.   register long d0 __asm("d0") = v;
  441.   register long d1 __asm("d1") = h;
  442.   __asm __volatile ("jsr a6@(-0x17a)"
  443.   : /* no output */
  444.   : "r" (a6), "r" (a1), "r" (d0), "r" (d1)
  445.   : "a0","a1","d0","d1", "memory");
  446. }
  447. static __inline UWORD 
  448. CalcIVG (BASE_PAR_DECL struct View *v,struct ViewPort *vp)
  449. {
  450.   BASE_EXT_DECL
  451.   register UWORD  _res  __asm("d0");
  452.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  453.   register struct View *a0 __asm("a0") = v;
  454.   register struct ViewPort *a1 __asm("a1") = vp;
  455.   __asm __volatile ("jsr a6@(-0x33c)"
  456.   : "=r" (_res)
  457.   : "r" (a6), "r" (a0), "r" (a1)
  458.   : "a0","a1","d0","d1", "memory");
  459.   return _res;
  460. }
  461. static __inline LONG 
  462. ChangeExtSpriteA (BASE_PAR_DECL struct ViewPort *vp,struct ExtSprite *old,struct ExtSprite *new,struct TagItem *tags)
  463. {
  464.   BASE_EXT_DECL
  465.   register LONG  _res  __asm("d0");
  466.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  467.   register struct ViewPort *a0 __asm("a0") = vp;
  468.   register struct ExtSprite *a1 __asm("a1") = old;
  469.   register struct ExtSprite *a2 __asm("a2") = new;
  470.   register struct TagItem *a3 __asm("a3") = tags;
  471.   __asm __volatile ("jsr a6@(-0x402)"
  472.   : "=r" (_res)
  473.   : "r" (a6), "r" (a0), "r" (a1), "r" (a2), "r" (a3)
  474.   : "a0","a1","a2","a3","d0","d1", "memory");
  475.   return _res;
  476. }
  477. static __inline void 
  478. ChangeSprite (BASE_PAR_DECL struct ViewPort *vp,struct SimpleSprite *sprite,PLANEPTR newData)
  479. {
  480.   BASE_EXT_DECL
  481.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  482.   register struct ViewPort *a0 __asm("a0") = vp;
  483.   register struct SimpleSprite *a1 __asm("a1") = sprite;
  484.   register PLANEPTR a2 __asm("a2") = newData;
  485.   __asm __volatile ("jsr a6@(-0x1a4)"
  486.   : /* no output */
  487.   : "r" (a6), "r" (a0), "r" (a1), "r" (a2)
  488.   : "a0","a1","a2","d0","d1", "memory");
  489. }
  490. static __inline void 
  491. ChangeVPBitMap (BASE_PAR_DECL struct ViewPort *vp,struct BitMap *bm,struct DBufInfo *db)
  492. {
  493.   BASE_EXT_DECL
  494.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  495.   register struct ViewPort *a0 __asm("a0") = vp;
  496.   register struct BitMap *a1 __asm("a1") = bm;
  497.   register struct DBufInfo *a2 __asm("a2") = db;
  498.   __asm __volatile ("jsr a6@(-0x3ae)"
  499.   : /* no output */
  500.   : "r" (a6), "r" (a0), "r" (a1), "r" (a2)
  501.   : "a0","a1","a2","d0","d1", "memory");
  502. }
  503. static __inline void 
  504. ClearEOL (BASE_PAR_DECL struct RastPort *rp)
  505. {
  506.   BASE_EXT_DECL
  507.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  508.   register struct RastPort *a1 __asm("a1") = rp;
  509.   __asm __volatile ("jsr a6@(-0x2a)"
  510.   : /* no output */
  511.   : "r" (a6), "r" (a1)
  512.   : "a0","a1","d0","d1", "memory");
  513. }
  514. static __inline BOOL 
  515. ClearRectRegion (BASE_PAR_DECL struct Region *region,struct Rectangle *rectangle)
  516. {
  517.   BASE_EXT_DECL
  518.   register BOOL  _res  __asm("d0");
  519.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  520.   register struct Region *a0 __asm("a0") = region;
  521.   register struct Rectangle *a1 __asm("a1") = rectangle;
  522.   __asm __volatile ("jsr a6@(-0x20a)"
  523.   : "=r" (_res)
  524.   : "r" (a6), "r" (a0), "r" (a1)
  525.   : "a0","a1","d0","d1", "memory");
  526.   return _res;
  527. }
  528. static __inline void 
  529. ClearRegion (BASE_PAR_DECL struct Region *region)
  530. {
  531.   BASE_EXT_DECL
  532.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  533.   register struct Region *a0 __asm("a0") = region;
  534.   __asm __volatile ("jsr a6@(-0x210)"
  535.   : /* no output */
  536.   : "r" (a6), "r" (a0)
  537.   : "a0","a1","d0","d1", "memory");
  538. }
  539. static __inline void 
  540. ClearScreen (BASE_PAR_DECL struct RastPort *rp)
  541. {
  542.   BASE_EXT_DECL
  543.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  544.   register struct RastPort *a1 __asm("a1") = rp;
  545.   __asm __volatile ("jsr a6@(-0x30)"
  546.   : /* no output */
  547.   : "r" (a6), "r" (a1)
  548.   : "a0","a1","d0","d1", "memory");
  549. }
  550. static __inline void 
  551. 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)
  552. {
  553.   BASE_EXT_DECL
  554.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  555.   register struct RastPort *a0 __asm("a0") = srcRP;
  556.   register long d0 __asm("d0") = xSrc;
  557.   register long d1 __asm("d1") = ySrc;
  558.   register struct RastPort *a1 __asm("a1") = destRP;
  559.   register long d2 __asm("d2") = xDest;
  560.   register long d3 __asm("d3") = yDest;
  561.   register long d4 __asm("d4") = xSize;
  562.   register long d5 __asm("d5") = ySize;
  563.   register unsigned long d6 __asm("d6") = minterm;
  564.   __asm __volatile ("jsr a6@(-0x228)"
  565.   : /* no output */
  566.   : "r" (a6), "r" (a0), "r" (d0), "r" (d1), "r" (a1), "r" (d2), "r" (d3), "r" (d4), "r" (d5), "r" (d6)
  567.   : "a0","a1","d0","d1","d2","d3","d4","d5","d6", "memory");
  568. }
  569. static __inline void 
  570. CloseFont (BASE_PAR_DECL struct TextFont *textFont)
  571. {
  572.   BASE_EXT_DECL
  573.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  574.   register struct TextFont *a1 __asm("a1") = textFont;
  575.   __asm __volatile ("jsr a6@(-0x4e)"
  576.   : /* no output */
  577.   : "r" (a6), "r" (a1)
  578.   : "a0","a1","d0","d1", "memory");
  579. }
  580. static __inline BOOL 
  581. CloseMonitor (BASE_PAR_DECL struct MonitorSpec *monitorSpec)
  582. {
  583.   BASE_EXT_DECL
  584.   register BOOL  _res  __asm("d0");
  585.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  586.   register struct MonitorSpec *a0 __asm("a0") = monitorSpec;
  587.   __asm __volatile ("jsr a6@(-0x2d0)"
  588.   : "=r" (_res)
  589.   : "r" (a6), "r" (a0)
  590.   : "a0","a1","d0","d1", "memory");
  591.   return _res;
  592. }
  593. static __inline ULONG 
  594. CoerceMode (BASE_PAR_DECL struct ViewPort *vp,unsigned long monitorid,unsigned long flags)
  595. {
  596.   BASE_EXT_DECL
  597.   register ULONG  _res  __asm("d0");
  598.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  599.   register struct ViewPort *a0 __asm("a0") = vp;
  600.   register unsigned long d0 __asm("d0") = monitorid;
  601.   register unsigned long d1 __asm("d1") = flags;
  602.   __asm __volatile ("jsr a6@(-0x3a8)"
  603.   : "=r" (_res)
  604.   : "r" (a6), "r" (a0), "r" (d0), "r" (d1)
  605.   : "a0","a1","d0","d1", "memory");
  606.   return _res;
  607. }
  608. static __inline void 
  609. CopySBitMap (BASE_PAR_DECL struct Layer *layer)
  610. {
  611.   BASE_EXT_DECL
  612.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  613.   register struct Layer *a0 __asm("a0") = layer;
  614.   __asm __volatile ("jsr a6@(-0x1c2)"
  615.   : /* no output */
  616.   : "r" (a6), "r" (a0)
  617.   : "a0","a1","d0","d1", "memory");
  618. }
  619. static __inline void 
  620. DisownBlitter (BASE_PAR_DECL0)
  621. {
  622.   BASE_EXT_DECL
  623.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  624.   __asm __volatile ("jsr a6@(-0x1ce)"
  625.   : /* no output */
  626.   : "r" (a6)
  627.   : "a0","a1","d0","d1", "memory");
  628. }
  629. static __inline void 
  630. DisposeRegion (BASE_PAR_DECL struct Region *region)
  631. {
  632.   BASE_EXT_DECL
  633.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  634.   register struct Region *a0 __asm("a0") = region;
  635.   __asm __volatile ("jsr a6@(-0x216)"
  636.   : /* no output */
  637.   : "r" (a6), "r" (a0)
  638.   : "a0","a1","d0","d1", "memory");
  639. }
  640. static __inline void 
  641. DoCollision (BASE_PAR_DECL struct RastPort *rp)
  642. {
  643.   BASE_EXT_DECL
  644.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  645.   register struct RastPort *a1 __asm("a1") = rp;
  646.   __asm __volatile ("jsr a6@(-0x6c)"
  647.   : /* no output */
  648.   : "r" (a6), "r" (a1)
  649.   : "a0","a1","d0","d1", "memory");
  650. }
  651. static __inline void 
  652. Draw (BASE_PAR_DECL struct RastPort *rp,long x,long y)
  653. {
  654.   BASE_EXT_DECL
  655.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  656.   register struct RastPort *a1 __asm("a1") = rp;
  657.   register long d0 __asm("d0") = x;
  658.   register long d1 __asm("d1") = y;
  659.   __asm __volatile ("jsr a6@(-0xf6)"
  660.   : /* no output */
  661.   : "r" (a6), "r" (a1), "r" (d0), "r" (d1)
  662.   : "a0","a1","d0","d1", "memory");
  663. }
  664. static __inline void 
  665. DrawEllipse (BASE_PAR_DECL struct RastPort *rp,long xCenter,long yCenter,long a,long b)
  666. {
  667.   BASE_EXT_DECL
  668.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  669.   register struct RastPort *a1 __asm("a1") = rp;
  670.   register long d0 __asm("d0") = xCenter;
  671.   register long d1 __asm("d1") = yCenter;
  672.   register long d2 __asm("d2") = a;
  673.   register long d3 __asm("d3") = b;
  674.   __asm __volatile ("jsr a6@(-0xb4)"
  675.   : /* no output */
  676.   : "r" (a6), "r" (a1), "r" (d0), "r" (d1), "r" (d2), "r" (d3)
  677.   : "a0","a1","d0","d1","d2","d3", "memory");
  678. }
  679. static __inline void 
  680. DrawGList (BASE_PAR_DECL struct RastPort *rp,struct ViewPort *vp)
  681. {
  682.   BASE_EXT_DECL
  683.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  684.   register struct RastPort *a1 __asm("a1") = rp;
  685.   register struct ViewPort *a0 __asm("a0") = vp;
  686.   __asm __volatile ("jsr a6@(-0x72)"
  687.   : /* no output */
  688.   : "r" (a6), "r" (a1), "r" (a0)
  689.   : "a0","a1","d0","d1", "memory");
  690. }
  691. static __inline void 
  692. EraseRect (BASE_PAR_DECL struct RastPort *rp,long xMin,long yMin,long xMax,long yMax)
  693. {
  694.   BASE_EXT_DECL
  695.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  696.   register struct RastPort *a1 __asm("a1") = rp;
  697.   register long d0 __asm("d0") = xMin;
  698.   register long d1 __asm("d1") = yMin;
  699.   register long d2 __asm("d2") = xMax;
  700.   register long d3 __asm("d3") = yMax;
  701.   __asm __volatile ("jsr a6@(-0x32a)"
  702.   : /* no output */
  703.   : "r" (a6), "r" (a1), "r" (d0), "r" (d1), "r" (d2), "r" (d3)
  704.   : "a0","a1","d0","d1","d2","d3", "memory");
  705. }
  706. static __inline ULONG 
  707. ExtendFont (BASE_PAR_DECL struct TextFont *font,struct TagItem *fontTags)
  708. {
  709.   BASE_EXT_DECL
  710.   register ULONG  _res  __asm("d0");
  711.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  712.   register struct TextFont *a0 __asm("a0") = font;
  713.   register struct TagItem *a1 __asm("a1") = fontTags;
  714.   __asm __volatile ("jsr a6@(-0x330)"
  715.   : "=r" (_res)
  716.   : "r" (a6), "r" (a0), "r" (a1)
  717.   : "a0","a1","d0","d1", "memory");
  718.   return _res;
  719. }
  720. #ifndef NO_INLINE_STDARG
  721. #define ExtendFontTags(a0, tags...) \
  722.   ({ struct TagItem _tags[] = { tags }; ExtendFont ((a0), _tags); })
  723. #endif /* not NO_INLINE_STDARG */
  724. static __inline LONG 
  725. FindColor (BASE_PAR_DECL struct ColorMap *cm,unsigned long r,unsigned long g,unsigned long b,long maxcolor)
  726. {
  727.   BASE_EXT_DECL
  728.   register LONG  _res  __asm("d0");
  729.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  730.   register struct ColorMap *a3 __asm("a3") = cm;
  731.   register unsigned long d1 __asm("d1") = r;
  732.   register unsigned long d2 __asm("d2") = g;
  733.   register unsigned long d3 __asm("d3") = b;
  734.   register long d4 __asm("d4") = maxcolor;
  735.   __asm __volatile ("jsr a6@(-0x3f0)"
  736.   : "=r" (_res)
  737.   : "r" (a6), "r" (a3), "r" (d1), "r" (d2), "r" (d3), "r" (d4)
  738.   : "a0","a1","a3","d0","d1","d2","d3","d4", "memory");
  739.   return _res;
  740. }
  741. static __inline DisplayInfoHandle 
  742. FindDisplayInfo (BASE_PAR_DECL unsigned long displayID)
  743. {
  744.   BASE_EXT_DECL
  745.   register DisplayInfoHandle  _res  __asm("d0");
  746.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  747.   register unsigned long d0 __asm("d0") = displayID;
  748.   __asm __volatile ("jsr a6@(-0x2d6)"
  749.   : "=r" (_res)
  750.   : "r" (a6), "r" (d0)
  751.   : "a0","a1","d0","d1", "memory");
  752.   return _res;
  753. }
  754. static __inline BOOL 
  755. Flood (BASE_PAR_DECL struct RastPort *rp,unsigned long mode,long x,long y)
  756. {
  757.   BASE_EXT_DECL
  758.   register BOOL  _res  __asm("d0");
  759.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  760.   register struct RastPort *a1 __asm("a1") = rp;
  761.   register unsigned long d2 __asm("d2") = mode;
  762.   register long d0 __asm("d0") = x;
  763.   register long d1 __asm("d1") = y;
  764.   __asm __volatile ("jsr a6@(-0x14a)"
  765.   : "=r" (_res)
  766.   : "r" (a6), "r" (a1), "r" (d2), "r" (d0), "r" (d1)
  767.   : "a0","a1","d0","d1","d2", "memory");
  768.   return _res;
  769. }
  770. static __inline void 
  771. FontExtent (BASE_PAR_DECL struct TextFont *font,struct TextExtent *fontExtent)
  772. {
  773.   BASE_EXT_DECL
  774.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  775.   register struct TextFont *a0 __asm("a0") = font;
  776.   register struct TextExtent *a1 __asm("a1") = fontExtent;
  777.   __asm __volatile ("jsr a6@(-0x2fa)"
  778.   : /* no output */
  779.   : "r" (a6), "r" (a0), "r" (a1)
  780.   : "a0","a1","d0","d1", "memory");
  781. }
  782. static __inline void 
  783. FreeBitMap (BASE_PAR_DECL struct BitMap *bm)
  784. {
  785.   BASE_EXT_DECL
  786.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  787.   register struct BitMap *a0 __asm("a0") = bm;
  788.   __asm __volatile ("jsr a6@(-0x39c)"
  789.   : /* no output */
  790.   : "r" (a6), "r" (a0)
  791.   : "a0","a1","d0","d1", "memory");
  792. }
  793. static __inline void 
  794. FreeColorMap (BASE_PAR_DECL struct ColorMap *colorMap)
  795. {
  796.   BASE_EXT_DECL
  797.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  798.   register struct ColorMap *a0 __asm("a0") = colorMap;
  799.   __asm __volatile ("jsr a6@(-0x240)"
  800.   : /* no output */
  801.   : "r" (a6), "r" (a0)
  802.   : "a0","a1","d0","d1", "memory");
  803. }
  804. static __inline void 
  805. FreeCopList (BASE_PAR_DECL struct CopList *copList)
  806. {
  807.   BASE_EXT_DECL
  808.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  809.   register struct CopList *a0 __asm("a0") = copList;
  810.   __asm __volatile ("jsr a6@(-0x222)"
  811.   : /* no output */
  812.   : "r" (a6), "r" (a0)
  813.   : "a0","a1","d0","d1", "memory");
  814. }
  815. static __inline void 
  816. FreeCprList (BASE_PAR_DECL struct cprlist *cprList)
  817. {
  818.   BASE_EXT_DECL
  819.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  820.   register struct cprlist *a0 __asm("a0") = cprList;
  821.   __asm __volatile ("jsr a6@(-0x234)"
  822.   : /* no output */
  823.   : "r" (a6), "r" (a0)
  824.   : "a0","a1","d0","d1", "memory");
  825. }
  826. static __inline void 
  827. FreeDBufInfo (BASE_PAR_DECL struct DBufInfo *dbi)
  828. {
  829.   BASE_EXT_DECL
  830.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  831.   register struct DBufInfo *a1 __asm("a1") = dbi;
  832.   __asm __volatile ("jsr a6@(-0x3cc)"
  833.   : /* no output */
  834.   : "r" (a6), "r" (a1)
  835.   : "a0","a1","d0","d1", "memory");
  836. }
  837. static __inline void 
  838. FreeGBuffers (BASE_PAR_DECL struct AnimOb *anOb,struct RastPort *rp,long flag)
  839. {
  840.   BASE_EXT_DECL
  841.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  842.   register struct AnimOb *a0 __asm("a0") = anOb;
  843.   register struct RastPort *a1 __asm("a1") = rp;
  844.   register long d0 __asm("d0") = flag;
  845.   __asm __volatile ("jsr a6@(-0x258)"
  846.   : /* no output */
  847.   : "r" (a6), "r" (a0), "r" (a1), "r" (d0)
  848.   : "a0","a1","d0","d1", "memory");
  849. }
  850. static __inline void 
  851. FreeRaster (BASE_PAR_DECL PLANEPTR p,unsigned long width,unsigned long height)
  852. {
  853.   BASE_EXT_DECL
  854.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  855.   register PLANEPTR a0 __asm("a0") = p;
  856.   register unsigned long d0 __asm("d0") = width;
  857.   register unsigned long d1 __asm("d1") = height;
  858.   __asm __volatile ("jsr a6@(-0x1f2)"
  859.   : /* no output */
  860.   : "r" (a6), "r" (a0), "r" (d0), "r" (d1)
  861.   : "a0","a1","d0","d1", "memory");
  862. }
  863. static __inline void 
  864. FreeSprite (BASE_PAR_DECL long num)
  865. {
  866.   BASE_EXT_DECL
  867.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  868.   register long d0 __asm("d0") = num;
  869.   __asm __volatile ("jsr a6@(-0x19e)"
  870.   : /* no output */
  871.   : "r" (a6), "r" (d0)
  872.   : "a0","a1","d0","d1", "memory");
  873. }
  874. static __inline void 
  875. FreeSpriteData (BASE_PAR_DECL struct ExtSprite *sp)
  876. {
  877.   BASE_EXT_DECL
  878.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  879.   register struct ExtSprite *a2 __asm("a2") = sp;
  880.   __asm __volatile ("jsr a6@(-0x408)"
  881.   : /* no output */
  882.   : "r" (a6), "r" (a2)
  883.   : "a0","a1","a2","d0","d1", "memory");
  884. }
  885. static __inline void 
  886. FreeVPortCopLists (BASE_PAR_DECL struct ViewPort *vp)
  887. {
  888.   BASE_EXT_DECL
  889.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  890.   register struct ViewPort *a0 __asm("a0") = vp;
  891.   __asm __volatile ("jsr a6@(-0x21c)"
  892.   : /* no output */
  893.   : "r" (a6), "r" (a0)
  894.   : "a0","a1","d0","d1", "memory");
  895. }
  896. static __inline ULONG 
  897. GetAPen (BASE_PAR_DECL struct RastPort *rp)
  898. {
  899.   BASE_EXT_DECL
  900.   register ULONG  _res  __asm("d0");
  901.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  902.   register struct RastPort *a0 __asm("a0") = rp;
  903.   __asm __volatile ("jsr a6@(-0x35a)"
  904.   : "=r" (_res)
  905.   : "r" (a6), "r" (a0)
  906.   : "a0","a1","d0","d1", "memory");
  907.   return _res;
  908. }
  909. static __inline ULONG 
  910. GetBPen (BASE_PAR_DECL struct RastPort *rp)
  911. {
  912.   BASE_EXT_DECL
  913.   register ULONG  _res  __asm("d0");
  914.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  915.   register struct RastPort *a0 __asm("a0") = rp;
  916.   __asm __volatile ("jsr a6@(-0x360)"
  917.   : "=r" (_res)
  918.   : "r" (a6), "r" (a0)
  919.   : "a0","a1","d0","d1", "memory");
  920.   return _res;
  921. }
  922. static __inline ULONG 
  923. GetBitMapAttr (BASE_PAR_DECL struct BitMap *bm,unsigned long attrnum)
  924. {
  925.   BASE_EXT_DECL
  926.   register ULONG  _res  __asm("d0");
  927.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  928.   register struct BitMap *a0 __asm("a0") = bm;
  929.   register unsigned long d1 __asm("d1") = attrnum;
  930.   __asm __volatile ("jsr a6@(-0x3c0)"
  931.   : "=r" (_res)
  932.   : "r" (a6), "r" (a0), "r" (d1)
  933.   : "a0","a1","d0","d1", "memory");
  934.   return _res;
  935. }
  936. static __inline struct ColorMap *
  937. GetColorMap (BASE_PAR_DECL long entries)
  938. {
  939.   BASE_EXT_DECL
  940.   register struct ColorMap * _res  __asm("d0");
  941.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  942.   register long d0 __asm("d0") = entries;
  943.   __asm __volatile ("jsr a6@(-0x23a)"
  944.   : "=r" (_res)
  945.   : "r" (a6), "r" (d0)
  946.   : "a0","a1","d0","d1", "memory");
  947.   return _res;
  948. }
  949. static __inline ULONG 
  950. GetDisplayInfoData (BASE_PAR_DECL DisplayInfoHandle handle,UBYTE *buf,unsigned long size,unsigned long tagID,unsigned long displayID)
  951. {
  952.   BASE_EXT_DECL
  953.   register ULONG  _res  __asm("d0");
  954.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  955.   register DisplayInfoHandle a0 __asm("a0") = handle;
  956.   register UBYTE *a1 __asm("a1") = buf;
  957.   register unsigned long d0 __asm("d0") = size;
  958.   register unsigned long d1 __asm("d1") = tagID;
  959.   register unsigned long d2 __asm("d2") = displayID;
  960.   __asm __volatile ("jsr a6@(-0x2f4)"
  961.   : "=r" (_res)
  962.   : "r" (a6), "r" (a0), "r" (a1), "r" (d0), "r" (d1), "r" (d2)
  963.   : "a0","a1","d0","d1","d2", "memory");
  964.   return _res;
  965. }
  966. static __inline ULONG 
  967. GetDrMd (BASE_PAR_DECL struct RastPort *rp)
  968. {
  969.   BASE_EXT_DECL
  970.   register ULONG  _res  __asm("d0");
  971.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  972.   register struct RastPort *a0 __asm("a0") = rp;
  973.   __asm __volatile ("jsr a6@(-0x366)"
  974.   : "=r" (_res)
  975.   : "r" (a6), "r" (a0)
  976.   : "a0","a1","d0","d1", "memory");
  977.   return _res;
  978. }
  979. static __inline LONG 
  980. GetExtSpriteA (BASE_PAR_DECL struct ExtSprite *ss,struct TagItem *tags)
  981. {
  982.   BASE_EXT_DECL
  983.   register LONG  _res  __asm("d0");
  984.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  985.   register struct ExtSprite *a2 __asm("a2") = ss;
  986.   register struct TagItem *a1 __asm("a1") = tags;
  987.   __asm __volatile ("jsr a6@(-0x3a2)"
  988.   : "=r" (_res)
  989.   : "r" (a6), "r" (a2), "r" (a1)
  990.   : "a0","a1","a2","d0","d1", "memory");
  991.   return _res;
  992. }
  993. static __inline BOOL 
  994. GetGBuffers (BASE_PAR_DECL struct AnimOb *anOb,struct RastPort *rp,long flag)
  995. {
  996.   BASE_EXT_DECL
  997.   register BOOL  _res  __asm("d0");
  998.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  999.   register struct AnimOb *a0 __asm("a0") = anOb;
  1000.   register struct RastPort *a1 __asm("a1") = rp;
  1001.   register long d0 __asm("d0") = flag;
  1002.   __asm __volatile ("jsr a6@(-0xa8)"
  1003.   : "=r" (_res)
  1004.   : "r" (a6), "r" (a0), "r" (a1), "r" (d0)
  1005.   : "a0","a1","d0","d1", "memory");
  1006.   return _res;
  1007. }
  1008. static __inline ULONG 
  1009. GetOutlinePen (BASE_PAR_DECL struct RastPort *rp)
  1010. {
  1011.   BASE_EXT_DECL
  1012.   register ULONG  _res  __asm("d0");
  1013.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1014.   register struct RastPort *a0 __asm("a0") = rp;
  1015.   __asm __volatile ("jsr a6@(-0x36c)"
  1016.   : "=r" (_res)
  1017.   : "r" (a6), "r" (a0)
  1018.   : "a0","a1","d0","d1", "memory");
  1019.   return _res;
  1020. }
  1021. static __inline void 
  1022. GetRGB32 (BASE_PAR_DECL struct ColorMap *cm,unsigned long firstcolor,unsigned long ncolors,ULONG *table)
  1023. {
  1024.   BASE_EXT_DECL
  1025.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1026.   register struct ColorMap *a0 __asm("a0") = cm;
  1027.   register unsigned long d0 __asm("d0") = firstcolor;
  1028.   register unsigned long d1 __asm("d1") = ncolors;
  1029.   register ULONG *a1 __asm("a1") = table;
  1030.   __asm __volatile ("jsr a6@(-0x384)"
  1031.   : /* no output */
  1032.   : "r" (a6), "r" (a0), "r" (d0), "r" (d1), "r" (a1)
  1033.   : "a0","a1","d0","d1", "memory");
  1034. }
  1035. static __inline ULONG 
  1036. GetRGB4 (BASE_PAR_DECL struct ColorMap *colorMap,long entry)
  1037. {
  1038.   BASE_EXT_DECL
  1039.   register ULONG  _res  __asm("d0");
  1040.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1041.   register struct ColorMap *a0 __asm("a0") = colorMap;
  1042.   register long d0 __asm("d0") = entry;
  1043.   __asm __volatile ("jsr a6@(-0x246)"
  1044.   : "=r" (_res)
  1045.   : "r" (a6), "r" (a0), "r" (d0)
  1046.   : "a0","a1","d0","d1", "memory");
  1047.   return _res;
  1048. }
  1049. static __inline void 
  1050. GetRPAttrsA (BASE_PAR_DECL struct RastPort *rp,struct TagItem *tags)
  1051. {
  1052.   BASE_EXT_DECL
  1053.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1054.   register struct RastPort *a0 __asm("a0") = rp;
  1055.   register struct TagItem *a1 __asm("a1") = tags;
  1056.   __asm __volatile ("jsr a6@(-0x414)"
  1057.   : /* no output */
  1058.   : "r" (a6), "r" (a0), "r" (a1)
  1059.   : "a0","a1","d0","d1", "memory");
  1060. }
  1061. static __inline WORD 
  1062. GetSprite (BASE_PAR_DECL struct SimpleSprite *sprite,long num)
  1063. {
  1064.   BASE_EXT_DECL
  1065.   register WORD  _res  __asm("d0");
  1066.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1067.   register struct SimpleSprite *a0 __asm("a0") = sprite;
  1068.   register long d0 __asm("d0") = num;
  1069.   __asm __volatile ("jsr a6@(-0x198)"
  1070.   : "=r" (_res)
  1071.   : "r" (a6), "r" (a0), "r" (d0)
  1072.   : "a0","a1","d0","d1", "memory");
  1073.   return _res;
  1074. }
  1075. static __inline LONG 
  1076. GetVPModeID (BASE_PAR_DECL struct ViewPort *vp)
  1077. {
  1078.   BASE_EXT_DECL
  1079.   register LONG  _res  __asm("d0");
  1080.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1081.   register struct ViewPort *a0 __asm("a0") = vp;
  1082.   __asm __volatile ("jsr a6@(-0x318)"
  1083.   : "=r" (_res)
  1084.   : "r" (a6), "r" (a0)
  1085.   : "a0","a1","d0","d1", "memory");
  1086.   return _res;
  1087. }
  1088. static __inline void 
  1089. GfxAssociate (BASE_PAR_DECL APTR associateNode,APTR gfxNodePtr)
  1090. {
  1091.   BASE_EXT_DECL
  1092.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1093.   register APTR a0 __asm("a0") = associateNode;
  1094.   register APTR a1 __asm("a1") = gfxNodePtr;
  1095.   __asm __volatile ("jsr a6@(-0x2a0)"
  1096.   : /* no output */
  1097.   : "r" (a6), "r" (a0), "r" (a1)
  1098.   : "a0","a1","d0","d1", "memory");
  1099. }
  1100. static __inline void 
  1101. GfxFree (BASE_PAR_DECL APTR gfxNodePtr)
  1102. {
  1103.   BASE_EXT_DECL
  1104.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1105.   register APTR a0 __asm("a0") = gfxNodePtr;
  1106.   __asm __volatile ("jsr a6@(-0x29a)"
  1107.   : /* no output */
  1108.   : "r" (a6), "r" (a0)
  1109.   : "a0","a1","d0","d1", "memory");
  1110. }
  1111. static __inline void 
  1112. GfxInternal1 (BASE_PAR_DECL0)
  1113. {
  1114.   BASE_EXT_DECL
  1115.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1116.   __asm __volatile ("jsr a6@(-0x282)"
  1117.   : /* no output */
  1118.   : "r" (a6)
  1119.   : "a0","a1","d0","d1", "memory");
  1120. }
  1121. static __inline void 
  1122. GfxInternal2 (BASE_PAR_DECL0)
  1123. {
  1124.   BASE_EXT_DECL
  1125.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1126.   __asm __volatile ("jsr a6@(-0x288)"
  1127.   : /* no output */
  1128.   : "r" (a6)
  1129.   : "a0","a1","d0","d1", "memory");
  1130. }
  1131. static __inline void 
  1132. GfxInternal3 (BASE_PAR_DECL0)
  1133. {
  1134.   BASE_EXT_DECL
  1135.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1136.   __asm __volatile ("jsr a6@(-0x34e)"
  1137.   : /* no output */
  1138.   : "r" (a6)
  1139.   : "a0","a1","d0","d1", "memory");
  1140. }
  1141. static __inline APTR 
  1142. GfxLookUp (BASE_PAR_DECL APTR associateNode)
  1143. {
  1144.   BASE_EXT_DECL
  1145.   register APTR  _res  __asm("d0");
  1146.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1147.   register APTR a0 __asm("a0") = associateNode;
  1148.   __asm __volatile ("jsr a6@(-0x2be)"
  1149.   : "=r" (_res)
  1150.   : "r" (a6), "r" (a0)
  1151.   : "a0","a1","d0","d1", "memory");
  1152.   return _res;
  1153. }
  1154. static __inline APTR 
  1155. GfxNew (BASE_PAR_DECL unsigned long gfxNodeType)
  1156. {
  1157.   BASE_EXT_DECL
  1158.   register APTR  _res  __asm("d0");
  1159.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1160.   register unsigned long d0 __asm("d0") = gfxNodeType;
  1161.   __asm __volatile ("jsr a6@(-0x294)"
  1162.   : "=r" (_res)
  1163.   : "r" (a6), "r" (d0)
  1164.   : "a0","a1","d0","d1", "memory");
  1165.   return _res;
  1166. }
  1167. static __inline void 
  1168. GfxSpare1 (BASE_PAR_DECL0)
  1169. {
  1170.   BASE_EXT_DECL
  1171.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1172.   __asm __volatile ("jsr a6@(-0x38a)"
  1173.   : /* no output */
  1174.   : "r" (a6)
  1175.   : "a0","a1","d0","d1", "memory");
  1176. }
  1177. static __inline void 
  1178. InitArea (BASE_PAR_DECL struct AreaInfo *areaInfo,APTR vectorBuffer,long maxVectors)
  1179. {
  1180.   BASE_EXT_DECL
  1181.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1182.   register struct AreaInfo *a0 __asm("a0") = areaInfo;
  1183.   register APTR a1 __asm("a1") = vectorBuffer;
  1184.   register long d0 __asm("d0") = maxVectors;
  1185.   __asm __volatile ("jsr a6@(-0x11a)"
  1186.   : /* no output */
  1187.   : "r" (a6), "r" (a0), "r" (a1), "r" (d0)
  1188.   : "a0","a1","d0","d1", "memory");
  1189. }
  1190. static __inline void 
  1191. InitBitMap (BASE_PAR_DECL struct BitMap *bitMap,long depth,long width,long height)
  1192. {
  1193.   BASE_EXT_DECL
  1194.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1195.   register struct BitMap *a0 __asm("a0") = bitMap;
  1196.   register long d0 __asm("d0") = depth;
  1197.   register long d1 __asm("d1") = width;
  1198.   register long d2 __asm("d2") = height;
  1199.   __asm __volatile ("jsr a6@(-0x186)"
  1200.   : /* no output */
  1201.   : "r" (a6), "r" (a0), "r" (d0), "r" (d1), "r" (d2)
  1202.   : "a0","a1","d0","d1","d2", "memory");
  1203. }
  1204. static __inline void 
  1205. InitGMasks (BASE_PAR_DECL struct AnimOb *anOb)
  1206. {
  1207.   BASE_EXT_DECL
  1208.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1209.   register struct AnimOb *a0 __asm("a0") = anOb;
  1210.   __asm __volatile ("jsr a6@(-0xae)"
  1211.   : /* no output */
  1212.   : "r" (a6), "r" (a0)
  1213.   : "a0","a1","d0","d1", "memory");
  1214. }
  1215. static __inline void 
  1216. InitGels (BASE_PAR_DECL struct VSprite *head,struct VSprite *tail,struct GelsInfo *gelsInfo)
  1217. {
  1218.   BASE_EXT_DECL
  1219.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1220.   register struct VSprite *a0 __asm("a0") = head;
  1221.   register struct VSprite *a1 __asm("a1") = tail;
  1222.   register struct GelsInfo *a2 __asm("a2") = gelsInfo;
  1223.   __asm __volatile ("jsr a6@(-0x78)"
  1224.   : /* no output */
  1225.   : "r" (a6), "r" (a0), "r" (a1), "r" (a2)
  1226.   : "a0","a1","a2","d0","d1", "memory");
  1227. }
  1228. static __inline void 
  1229. InitMasks (BASE_PAR_DECL struct VSprite *vSprite)
  1230. {
  1231.   BASE_EXT_DECL
  1232.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1233.   register struct VSprite *a0 __asm("a0") = vSprite;
  1234.   __asm __volatile ("jsr a6@(-0x7e)"
  1235.   : /* no output */
  1236.   : "r" (a6), "r" (a0)
  1237.   : "a0","a1","d0","d1", "memory");
  1238. }
  1239. static __inline void 
  1240. InitRastPort (BASE_PAR_DECL struct RastPort *rp)
  1241. {
  1242.   BASE_EXT_DECL
  1243.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1244.   register struct RastPort *a1 __asm("a1") = rp;
  1245.   __asm __volatile ("jsr a6@(-0xc6)"
  1246.   : /* no output */
  1247.   : "r" (a6), "r" (a1)
  1248.   : "a0","a1","d0","d1", "memory");
  1249. }
  1250. static __inline struct TmpRas *
  1251. InitTmpRas (BASE_PAR_DECL struct TmpRas *tmpRas,PLANEPTR buffer,long size)
  1252. {
  1253.   BASE_EXT_DECL
  1254.   register struct TmpRas * _res  __asm("d0");
  1255.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1256.   register struct TmpRas *a0 __asm("a0") = tmpRas;
  1257.   register PLANEPTR a1 __asm("a1") = buffer;
  1258.   register long d0 __asm("d0") = size;
  1259.   __asm __volatile ("jsr a6@(-0x1d4)"
  1260.   : "=r" (_res)
  1261.   : "r" (a6), "r" (a0), "r" (a1), "r" (d0)
  1262.   : "a0","a1","d0","d1", "memory");
  1263.   return _res;
  1264. }
  1265. static __inline void 
  1266. InitVPort (BASE_PAR_DECL struct ViewPort *vp)
  1267. {
  1268.   BASE_EXT_DECL
  1269.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1270.   register struct ViewPort *a0 __asm("a0") = vp;
  1271.   __asm __volatile ("jsr a6@(-0xcc)"
  1272.   : /* no output */
  1273.   : "r" (a6), "r" (a0)
  1274.   : "a0","a1","d0","d1", "memory");
  1275. }
  1276. static __inline void 
  1277. InitView (BASE_PAR_DECL struct View *view)
  1278. {
  1279.   BASE_EXT_DECL
  1280.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1281.   register struct View *a1 __asm("a1") = view;
  1282.   __asm __volatile ("jsr a6@(-0x168)"
  1283.   : /* no output */
  1284.   : "r" (a6), "r" (a1)
  1285.   : "a0","a1","d0","d1", "memory");
  1286. }
  1287. static __inline void 
  1288. LoadRGB32 (BASE_PAR_DECL struct ViewPort *vp,ULONG *table)
  1289. {
  1290.   BASE_EXT_DECL
  1291.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1292.   register struct ViewPort *a0 __asm("a0") = vp;
  1293.   register ULONG *a1 __asm("a1") = table;
  1294.   __asm __volatile ("jsr a6@(-0x372)"
  1295.   : /* no output */
  1296.   : "r" (a6), "r" (a0), "r" (a1)
  1297.   : "a0","a1","d0","d1", "memory");
  1298. }
  1299. static __inline void 
  1300. LoadRGB4 (BASE_PAR_DECL struct ViewPort *vp,UWORD *colors,long count)
  1301. {
  1302.   BASE_EXT_DECL
  1303.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1304.   register struct ViewPort *a0 __asm("a0") = vp;
  1305.   register UWORD *a1 __asm("a1") = colors;
  1306.   register long d0 __asm("d0") = count;
  1307.   __asm __volatile ("jsr a6@(-0xc0)"
  1308.   : /* no output */
  1309.   : "r" (a6), "r" (a0), "r" (a1), "r" (d0)
  1310.   : "a0","a1","d0","d1", "memory");
  1311. }
  1312. static __inline void 
  1313. LoadView (BASE_PAR_DECL struct View *view)
  1314. {
  1315.   BASE_EXT_DECL
  1316.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1317.   register struct View *a1 __asm("a1") = view;
  1318.   __asm __volatile ("jsr a6@(-0xde)"
  1319.   : /* no output */
  1320.   : "r" (a6), "r" (a1)
  1321.   : "a0","a1","d0","d1", "memory");
  1322. }
  1323. static __inline void 
  1324. LockLayerRom (BASE_PAR_DECL struct Layer *layer)
  1325. {
  1326.   BASE_EXT_DECL
  1327.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1328.   register struct Layer *a5 __asm("d7") = layer;
  1329.   __asm __volatile ("exg d7,a5; jsr a6@(-0x1b0); exg d7,a5"
  1330.   : /* no output */
  1331.   : "r" (a6), "r" (a5)
  1332.   : "a0","a1","d0","d1","d7", "memory");
  1333. }
  1334. static __inline ULONG 
  1335. MakeVPort (BASE_PAR_DECL struct View *view,struct ViewPort *vp)
  1336. {
  1337.   BASE_EXT_DECL
  1338.   register ULONG  _res  __asm("d0");
  1339.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1340.   register struct View *a0 __asm("a0") = view;
  1341.   register struct ViewPort *a1 __asm("a1") = vp;
  1342.   __asm __volatile ("jsr a6@(-0xd8)"
  1343.   : "=r" (_res)
  1344.   : "r" (a6), "r" (a0), "r" (a1)
  1345.   : "a0","a1","d0","d1", "memory");
  1346.   return _res;
  1347. }
  1348. static __inline LONG 
  1349. ModeNotAvailable (BASE_PAR_DECL unsigned long modeID)
  1350. {
  1351.   BASE_EXT_DECL
  1352.   register LONG  _res  __asm("d0");
  1353.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1354.   register unsigned long d0 __asm("d0") = modeID;
  1355.   __asm __volatile ("jsr a6@(-0x31e)"
  1356.   : "=r" (_res)
  1357.   : "r" (a6), "r" (d0)
  1358.   : "a0","a1","d0","d1", "memory");
  1359.   return _res;
  1360. }
  1361. static __inline void 
  1362. Move (BASE_PAR_DECL struct RastPort *rp,long x,long y)
  1363. {
  1364.   BASE_EXT_DECL
  1365.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1366.   register struct RastPort *a1 __asm("a1") = rp;
  1367.   register long d0 __asm("d0") = x;
  1368.   register long d1 __asm("d1") = y;
  1369.   __asm __volatile ("jsr a6@(-0xf0)"
  1370.   : /* no output */
  1371.   : "r" (a6), "r" (a1), "r" (d0), "r" (d1)
  1372.   : "a0","a1","d0","d1", "memory");
  1373. }
  1374. static __inline void 
  1375. MoveSprite (BASE_PAR_DECL struct ViewPort *vp,struct SimpleSprite *sprite,long x,long y)
  1376. {
  1377.   BASE_EXT_DECL
  1378.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1379.   register struct ViewPort *a0 __asm("a0") = vp;
  1380.   register struct SimpleSprite *a1 __asm("a1") = sprite;
  1381.   register long d0 __asm("d0") = x;
  1382.   register long d1 __asm("d1") = y;
  1383.   __asm __volatile ("jsr a6@(-0x1aa)"
  1384.   : /* no output */
  1385.   : "r" (a6), "r" (a0), "r" (a1), "r" (d0), "r" (d1)
  1386.   : "a0","a1","d0","d1", "memory");
  1387. }
  1388. static __inline void 
  1389. MrgCop (BASE_PAR_DECL struct View *view)
  1390. {
  1391.   BASE_EXT_DECL
  1392.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1393.   register struct View *a1 __asm("a1") = view;
  1394.   __asm __volatile ("jsr a6@(-0xd2)"
  1395.   : /* no output */
  1396.   : "r" (a6), "r" (a1)
  1397.   : "a0","a1","d0","d1", "memory");
  1398. }
  1399. static __inline struct Region *
  1400. NewRegion (BASE_PAR_DECL0)
  1401. {
  1402.   BASE_EXT_DECL
  1403.   register struct Region * _res  __asm("d0");
  1404.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1405.   __asm __volatile ("jsr a6@(-0x204)"
  1406.   : "=r" (_res)
  1407.   : "r" (a6)
  1408.   : "a0","a1","d0","d1", "memory");
  1409.   return _res;
  1410. }
  1411. static __inline ULONG 
  1412. NextDisplayInfo (BASE_PAR_DECL unsigned long displayID)
  1413. {
  1414.   BASE_EXT_DECL
  1415.   register ULONG  _res  __asm("d0");
  1416.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1417.   register unsigned long d0 __asm("d0") = displayID;
  1418.   __asm __volatile ("jsr a6@(-0x2dc)"
  1419.   : "=r" (_res)
  1420.   : "r" (a6), "r" (d0)
  1421.   : "a0","a1","d0","d1", "memory");
  1422.   return _res;
  1423. }
  1424. static __inline LONG 
  1425. ObtainBestPenA (BASE_PAR_DECL struct ColorMap *cm,unsigned long r,unsigned long g,unsigned long b,struct TagItem *tags)
  1426. {
  1427.   BASE_EXT_DECL
  1428.   register LONG  _res  __asm("d0");
  1429.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1430.   register struct ColorMap *a0 __asm("a0") = cm;
  1431.   register unsigned long d1 __asm("d1") = r;
  1432.   register unsigned long d2 __asm("d2") = g;
  1433.   register unsigned long d3 __asm("d3") = b;
  1434.   register struct TagItem *a1 __asm("a1") = tags;
  1435.   __asm __volatile ("jsr a6@(-0x348)"
  1436.   : "=r" (_res)
  1437.   : "r" (a6), "r" (a0), "r" (d1), "r" (d2), "r" (d3), "r" (a1)
  1438.   : "a0","a1","d0","d1","d2","d3", "memory");
  1439.   return _res;
  1440. }
  1441. static __inline ULONG 
  1442. ObtainPen (BASE_PAR_DECL struct ColorMap *cm,unsigned long n,unsigned long r,unsigned long g,unsigned long b,long f)
  1443. {
  1444.   BASE_EXT_DECL
  1445.   register ULONG  _res  __asm("d0");
  1446.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1447.   register struct ColorMap *a0 __asm("a0") = cm;
  1448.   register unsigned long d0 __asm("d0") = n;
  1449.   register unsigned long d1 __asm("d1") = r;
  1450.   register unsigned long d2 __asm("d2") = g;
  1451.   register unsigned long d3 __asm("d3") = b;
  1452.   register long d4 __asm("d4") = f;
  1453.   __asm __volatile ("jsr a6@(-0x3ba)"
  1454.   : "=r" (_res)
  1455.   : "r" (a6), "r" (a0), "r" (d0), "r" (d1), "r" (d2), "r" (d3), "r" (d4)
  1456.   : "a0","a1","d0","d1","d2","d3","d4", "memory");
  1457.   return _res;
  1458. }
  1459. static __inline struct TextFont *
  1460. OpenFont (BASE_PAR_DECL struct TextAttr *textAttr)
  1461. {
  1462.   BASE_EXT_DECL
  1463.   register struct TextFont * _res  __asm("d0");
  1464.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1465.   register struct TextAttr *a0 __asm("a0") = textAttr;
  1466.   __asm __volatile ("jsr a6@(-0x48)"
  1467.   : "=r" (_res)
  1468.   : "r" (a6), "r" (a0)
  1469.   : "a0","a1","d0","d1", "memory");
  1470.   return _res;
  1471. }
  1472. static __inline struct MonitorSpec *
  1473. OpenMonitor (BASE_PAR_DECL STRPTR monitorName,unsigned long displayID)
  1474. {
  1475.   BASE_EXT_DECL
  1476.   register struct MonitorSpec * _res  __asm("d0");
  1477.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1478.   register STRPTR a1 __asm("a1") = monitorName;
  1479.   register unsigned long d0 __asm("d0") = displayID;
  1480.   __asm __volatile ("jsr a6@(-0x2ca)"
  1481.   : "=r" (_res)
  1482.   : "r" (a6), "r" (a1), "r" (d0)
  1483.   : "a0","a1","d0","d1", "memory");
  1484.   return _res;
  1485. }
  1486. static __inline BOOL 
  1487. OrRectRegion (BASE_PAR_DECL struct Region *region,struct Rectangle *rectangle)
  1488. {
  1489.   BASE_EXT_DECL
  1490.   register BOOL  _res  __asm("d0");
  1491.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1492.   register struct Region *a0 __asm("a0") = region;
  1493.   register struct Rectangle *a1 __asm("a1") = rectangle;
  1494.   __asm __volatile ("jsr a6@(-0x1fe)"
  1495.   : "=r" (_res)
  1496.   : "r" (a6), "r" (a0), "r" (a1)
  1497.   : "a0","a1","d0","d1", "memory");
  1498.   return _res;
  1499. }
  1500. static __inline BOOL 
  1501. OrRegionRegion (BASE_PAR_DECL struct Region *srcRegion,struct Region *destRegion)
  1502. {
  1503.   BASE_EXT_DECL
  1504.   register BOOL  _res  __asm("d0");
  1505.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1506.   register struct Region *a0 __asm("a0") = srcRegion;
  1507.   register struct Region *a1 __asm("a1") = destRegion;
  1508.   __asm __volatile ("jsr a6@(-0x264)"
  1509.   : "=r" (_res)
  1510.   : "r" (a6), "r" (a0), "r" (a1)
  1511.   : "a0","a1","d0","d1", "memory");
  1512.   return _res;
  1513. }
  1514. static __inline void 
  1515. OwnBlitter (BASE_PAR_DECL0)
  1516. {
  1517.   BASE_EXT_DECL
  1518.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1519.   __asm __volatile ("jsr a6@(-0x1c8)"
  1520.   : /* no output */
  1521.   : "r" (a6)
  1522.   : "a0","a1","d0","d1", "memory");
  1523. }
  1524. static __inline void 
  1525. PolyDraw (BASE_PAR_DECL struct RastPort *rp,long count,WORD *polyTable)
  1526. {
  1527.   BASE_EXT_DECL
  1528.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1529.   register struct RastPort *a1 __asm("a1") = rp;
  1530.   register long d0 __asm("d0") = count;
  1531.   register WORD *a0 __asm("a0") = polyTable;
  1532.   __asm __volatile ("jsr a6@(-0x150)"
  1533.   : /* no output */
  1534.   : "r" (a6), "r" (a1), "r" (d0), "r" (a0)
  1535.   : "a0","a1","d0","d1", "memory");
  1536. }
  1537. static __inline void 
  1538. QBSBlit (BASE_PAR_DECL struct bltnode *blit)
  1539. {
  1540.   BASE_EXT_DECL
  1541.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1542.   register struct bltnode *a1 __asm("a1") = blit;
  1543.   __asm __volatile ("jsr a6@(-0x126)"
  1544.   : /* no output */
  1545.   : "r" (a6), "r" (a1)
  1546.   : "a0","a1","d0","d1", "memory");
  1547. }
  1548. static __inline void 
  1549. QBlit (BASE_PAR_DECL struct bltnode *blit)
  1550. {
  1551.   BASE_EXT_DECL
  1552.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1553.   register struct bltnode *a1 __asm("a1") = blit;
  1554.   __asm __volatile ("jsr a6@(-0x114)"
  1555.   : /* no output */
  1556.   : "r" (a6), "r" (a1)
  1557.   : "a0","a1","d0","d1", "memory");
  1558. }
  1559. static __inline ULONG 
  1560. ReadPixel (BASE_PAR_DECL struct RastPort *rp,long x,long y)
  1561. {
  1562.   BASE_EXT_DECL
  1563.   register ULONG  _res  __asm("d0");
  1564.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1565.   register struct RastPort *a1 __asm("a1") = rp;
  1566.   register long d0 __asm("d0") = x;
  1567.   register long d1 __asm("d1") = y;
  1568.   __asm __volatile ("jsr a6@(-0x13e)"
  1569.   : "=r" (_res)
  1570.   : "r" (a6), "r" (a1), "r" (d0), "r" (d1)
  1571.   : "a0","a1","d0","d1", "memory");
  1572.   return _res;
  1573. }
  1574. static __inline LONG 
  1575. ReadPixelArray8 (BASE_PAR_DECL struct RastPort *rp,unsigned long xstart,unsigned long ystart,unsigned long xstop,unsigned long ystop,UBYTE *array,struct RastPort *temprp)
  1576. {
  1577.   BASE_EXT_DECL
  1578.   register LONG  _res  __asm("d0");
  1579.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1580.   register struct RastPort *a0 __asm("a0") = rp;
  1581.   register unsigned long d0 __asm("d0") = xstart;
  1582.   register unsigned long d1 __asm("d1") = ystart;
  1583.   register unsigned long d2 __asm("d2") = xstop;
  1584.   register unsigned long d3 __asm("d3") = ystop;
  1585.   register UBYTE *a2 __asm("a2") = array;
  1586.   register struct RastPort *a1 __asm("a1") = temprp;
  1587.   __asm __volatile ("jsr a6@(-0x30c)"
  1588.   : "=r" (_res)
  1589.   : "r" (a6), "r" (a0), "r" (d0), "r" (d1), "r" (d2), "r" (d3), "r" (a2), "r" (a1)
  1590.   : "a0","a1","a2","d0","d1","d2","d3", "memory");
  1591.   return _res;
  1592. }
  1593. static __inline LONG 
  1594. ReadPixelLine8 (BASE_PAR_DECL struct RastPort *rp,unsigned long xstart,unsigned long ystart,unsigned long width,UBYTE *array,struct RastPort *tempRP)
  1595. {
  1596.   BASE_EXT_DECL
  1597.   register LONG  _res  __asm("d0");
  1598.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1599.   register struct RastPort *a0 __asm("a0") = rp;
  1600.   register unsigned long d0 __asm("d0") = xstart;
  1601.   register unsigned long d1 __asm("d1") = ystart;
  1602.   register unsigned long d2 __asm("d2") = width;
  1603.   register UBYTE *a2 __asm("a2") = array;
  1604.   register struct RastPort *a1 __asm("a1") = tempRP;
  1605.   __asm __volatile ("jsr a6@(-0x300)"
  1606.   : "=r" (_res)
  1607.   : "r" (a6), "r" (a0), "r" (d0), "r" (d1), "r" (d2), "r" (a2), "r" (a1)
  1608.   : "a0","a1","a2","d0","d1","d2", "memory");
  1609.   return _res;
  1610. }
  1611. static __inline void 
  1612. RectFill (BASE_PAR_DECL struct RastPort *rp,long xMin,long yMin,long xMax,long yMax)
  1613. {
  1614.   BASE_EXT_DECL
  1615.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1616.   register struct RastPort *a1 __asm("a1") = rp;
  1617.   register long d0 __asm("d0") = xMin;
  1618.   register long d1 __asm("d1") = yMin;
  1619.   register long d2 __asm("d2") = xMax;
  1620.   register long d3 __asm("d3") = yMax;
  1621.   __asm __volatile ("jsr a6@(-0x132)"
  1622.   : /* no output */
  1623.   : "r" (a6), "r" (a1), "r" (d0), "r" (d1), "r" (d2), "r" (d3)
  1624.   : "a0","a1","d0","d1","d2","d3", "memory");
  1625. }
  1626. static __inline void 
  1627. ReleasePen (BASE_PAR_DECL struct ColorMap *cm,unsigned long n)
  1628. {
  1629.   BASE_EXT_DECL
  1630.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1631.   register struct ColorMap *a0 __asm("a0") = cm;
  1632.   register unsigned long d0 __asm("d0") = n;
  1633.   __asm __volatile ("jsr a6@(-0x3b4)"
  1634.   : /* no output */
  1635.   : "r" (a6), "r" (a0), "r" (d0)
  1636.   : "a0","a1","d0","d1", "memory");
  1637. }
  1638. static __inline void 
  1639. RemFont (BASE_PAR_DECL struct TextFont *textFont)
  1640. {
  1641.   BASE_EXT_DECL
  1642.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1643.   register struct TextFont *a1 __asm("a1") = textFont;
  1644.   __asm __volatile ("jsr a6@(-0x1e6)"
  1645.   : /* no output */
  1646.   : "r" (a6), "r" (a1)
  1647.   : "a0","a1","d0","d1", "memory");
  1648. }
  1649. static __inline void 
  1650. RemIBob (BASE_PAR_DECL struct Bob *bob,struct RastPort *rp,struct ViewPort *vp)
  1651. {
  1652.   BASE_EXT_DECL
  1653.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1654.   register struct Bob *a0 __asm("a0") = bob;
  1655.   register struct RastPort *a1 __asm("a1") = rp;
  1656.   register struct ViewPort *a2 __asm("a2") = vp;
  1657.   __asm __volatile ("jsr a6@(-0x84)"
  1658.   : /* no output */
  1659.   : "r" (a6), "r" (a0), "r" (a1), "r" (a2)
  1660.   : "a0","a1","a2","d0","d1", "memory");
  1661. }
  1662. static __inline void 
  1663. RemVSprite (BASE_PAR_DECL struct VSprite *vSprite)
  1664. {
  1665.   BASE_EXT_DECL
  1666.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1667.   register struct VSprite *a0 __asm("a0") = vSprite;
  1668.   __asm __volatile ("jsr a6@(-0x8a)"
  1669.   : /* no output */
  1670.   : "r" (a6), "r" (a0)
  1671.   : "a0","a1","d0","d1", "memory");
  1672. }
  1673. static __inline UWORD 
  1674. ScalerDiv (BASE_PAR_DECL unsigned long factor,unsigned long numerator,unsigned long denominator)
  1675. {
  1676.   BASE_EXT_DECL
  1677.   register UWORD  _res  __asm("d0");
  1678.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1679.   register unsigned long d0 __asm("d0") = factor;
  1680.   register unsigned long d1 __asm("d1") = numerator;
  1681.   register unsigned long d2 __asm("d2") = denominator;
  1682.   __asm __volatile ("jsr a6@(-0x2ac)"
  1683.   : "=r" (_res)
  1684.   : "r" (a6), "r" (d0), "r" (d1), "r" (d2)
  1685.   : "a0","a1","d0","d1","d2", "memory");
  1686.   return _res;
  1687. }
  1688. static __inline void 
  1689. ScrollRaster (BASE_PAR_DECL struct RastPort *rp,long dx,long dy,long xMin,long yMin,long xMax,long yMax)
  1690. {
  1691.   BASE_EXT_DECL
  1692.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1693.   register struct RastPort *a1 __asm("a1") = rp;
  1694.   register long d0 __asm("d0") = dx;
  1695.   register long d1 __asm("d1") = dy;
  1696.   register long d2 __asm("d2") = xMin;
  1697.   register long d3 __asm("d3") = yMin;
  1698.   register long d4 __asm("d4") = xMax;
  1699.   register long d5 __asm("d5") = yMax;
  1700.   __asm __volatile ("jsr a6@(-0x18c)"
  1701.   : /* no output */
  1702.   : "r" (a6), "r" (a1), "r" (d0), "r" (d1), "r" (d2), "r" (d3), "r" (d4), "r" (d5)
  1703.   : "a0","a1","d0","d1","d2","d3","d4","d5", "memory");
  1704. }
  1705. static __inline void 
  1706. ScrollRasterBF (BASE_PAR_DECL struct RastPort *rp,long dx,long dy,long xMin,long yMin,long xMax,long yMax)
  1707. {
  1708.   BASE_EXT_DECL
  1709.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1710.   register struct RastPort *a1 __asm("a1") = rp;
  1711.   register long d0 __asm("d0") = dx;
  1712.   register long d1 __asm("d1") = dy;
  1713.   register long d2 __asm("d2") = xMin;
  1714.   register long d3 __asm("d3") = yMin;
  1715.   register long d4 __asm("d4") = xMax;
  1716.   register long d5 __asm("d5") = yMax;
  1717.   __asm __volatile ("jsr a6@(-0x3ea)"
  1718.   : /* no output */
  1719.   : "r" (a6), "r" (a1), "r" (d0), "r" (d1), "r" (d2), "r" (d3), "r" (d4), "r" (d5)
  1720.   : "a0","a1","d0","d1","d2","d3","d4","d5", "memory");
  1721. }
  1722. static __inline void 
  1723. ScrollVPort (BASE_PAR_DECL struct ViewPort *vp)
  1724. {
  1725.   BASE_EXT_DECL
  1726.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1727.   register struct ViewPort *a0 __asm("a0") = vp;
  1728.   __asm __volatile ("jsr a6@(-0x24c)"
  1729.   : /* no output */
  1730.   : "r" (a6), "r" (a0)
  1731.   : "a0","a1","d0","d1", "memory");
  1732. }
  1733. static __inline void 
  1734. SetABPenDrMd (BASE_PAR_DECL struct RastPort *rp,unsigned long apen,unsigned long bpen,unsigned long drawmode)
  1735. {
  1736.   BASE_EXT_DECL
  1737.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1738.   register struct RastPort *a1 __asm("a1") = rp;
  1739.   register unsigned long d0 __asm("d0") = apen;
  1740.   register unsigned long d1 __asm("d1") = bpen;
  1741.   register unsigned long d2 __asm("d2") = drawmode;
  1742.   __asm __volatile ("jsr a6@(-0x37e)"
  1743.   : /* no output */
  1744.   : "r" (a6), "r" (a1), "r" (d0), "r" (d1), "r" (d2)
  1745.   : "a0","a1","d0","d1","d2", "memory");
  1746. }
  1747. static __inline void 
  1748. SetAPen (BASE_PAR_DECL struct RastPort *rp,unsigned long pen)
  1749. {
  1750.   BASE_EXT_DECL
  1751.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1752.   register struct RastPort *a1 __asm("a1") = rp;
  1753.   register unsigned long d0 __asm("d0") = pen;
  1754.   __asm __volatile ("jsr a6@(-0x156)"
  1755.   : /* no output */
  1756.   : "r" (a6), "r" (a1), "r" (d0)
  1757.   : "a0","a1","d0","d1", "memory");
  1758. }
  1759. static __inline void 
  1760. SetBPen (BASE_PAR_DECL struct RastPort *rp,unsigned long pen)
  1761. {
  1762.   BASE_EXT_DECL
  1763.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1764.   register struct RastPort *a1 __asm("a1") = rp;
  1765.   register unsigned long d0 __asm("d0") = pen;
  1766.   __asm __volatile ("jsr a6@(-0x15c)"
  1767.   : /* no output */
  1768.   : "r" (a6), "r" (a1), "r" (d0)
  1769.   : "a0","a1","d0","d1", "memory");
  1770. }
  1771. static __inline ULONG 
  1772. SetChipRev (BASE_PAR_DECL unsigned long want)
  1773. {
  1774.   BASE_EXT_DECL
  1775.   register ULONG  _res  __asm("d0");
  1776.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1777.   register unsigned long d0 __asm("d0") = want;
  1778.   __asm __volatile ("jsr a6@(-0x378)"
  1779.   : "=r" (_res)
  1780.   : "r" (a6), "r" (d0)
  1781.   : "a0","a1","d0","d1", "memory");
  1782.   return _res;
  1783. }
  1784. static __inline void 
  1785. SetCollision (BASE_PAR_DECL unsigned long num,void (*routine)(),struct GelsInfo *gelsInfo)
  1786. {
  1787.   BASE_EXT_DECL
  1788.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1789.   register unsigned long d0 __asm("d0") = num;
  1790.   register void (*a0)() __asm("a0") = routine;
  1791.   register struct GelsInfo *a1 __asm("a1") = gelsInfo;
  1792.   __asm __volatile ("jsr a6@(-0x90)"
  1793.   : /* no output */
  1794.   : "r" (a6), "r" (d0), "r" (a0), "r" (a1)
  1795.   : "a0","a1","d0","d1", "memory");
  1796. }
  1797. static __inline void 
  1798. SetDrMd (BASE_PAR_DECL struct RastPort *rp,unsigned long drawMode)
  1799. {
  1800.   BASE_EXT_DECL
  1801.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1802.   register struct RastPort *a1 __asm("a1") = rp;
  1803.   register unsigned long d0 __asm("d0") = drawMode;
  1804.   __asm __volatile ("jsr a6@(-0x162)"
  1805.   : /* no output */
  1806.   : "r" (a6), "r" (a1), "r" (d0)
  1807.   : "a0","a1","d0","d1", "memory");
  1808. }
  1809. static __inline LONG 
  1810. SetFont (BASE_PAR_DECL struct RastPort *rp,struct TextFont *textFont)
  1811. {
  1812.   BASE_EXT_DECL
  1813.   register LONG  _res  __asm("d0");
  1814.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1815.   register struct RastPort *a1 __asm("a1") = rp;
  1816.   register struct TextFont *a0 __asm("a0") = textFont;
  1817.   __asm __volatile ("jsr a6@(-0x42)"
  1818.   : "=r" (_res)
  1819.   : "r" (a6), "r" (a1), "r" (a0)
  1820.   : "a0","a1","d0","d1", "memory");
  1821.   return _res;
  1822. }
  1823. static __inline void 
  1824. SetMaxPen (BASE_PAR_DECL struct RastPort *rp,unsigned long maxpen)
  1825. {
  1826.   BASE_EXT_DECL
  1827.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1828.   register struct RastPort *a0 __asm("a0") = rp;
  1829.   register unsigned long d0 __asm("d0") = maxpen;
  1830.   __asm __volatile ("jsr a6@(-0x3de)"
  1831.   : /* no output */
  1832.   : "r" (a6), "r" (a0), "r" (d0)
  1833.   : "a0","a1","d0","d1", "memory");
  1834. }
  1835. static __inline ULONG 
  1836. SetOutlinePen (BASE_PAR_DECL struct RastPort *rp,unsigned long pen)
  1837. {
  1838.   BASE_EXT_DECL
  1839.   register ULONG  _res  __asm("d0");
  1840.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1841.   register struct RastPort *a0 __asm("a0") = rp;
  1842.   register unsigned long d0 __asm("d0") = pen;
  1843.   __asm __volatile ("jsr a6@(-0x3d2)"
  1844.   : "=r" (_res)
  1845.   : "r" (a6), "r" (a0), "r" (d0)
  1846.   : "a0","a1","d0","d1", "memory");
  1847.   return _res;
  1848. }
  1849. static __inline void 
  1850. SetRGB32 (BASE_PAR_DECL struct ViewPort *vp,unsigned long n,unsigned long r,unsigned long g,unsigned long b)
  1851. {
  1852.   BASE_EXT_DECL
  1853.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1854.   register struct ViewPort *a0 __asm("a0") = vp;
  1855.   register unsigned long d0 __asm("d0") = n;
  1856.   register unsigned long d1 __asm("d1") = r;
  1857.   register unsigned long d2 __asm("d2") = g;
  1858.   register unsigned long d3 __asm("d3") = b;
  1859.   __asm __volatile ("jsr a6@(-0x354)"
  1860.   : /* no output */
  1861.   : "r" (a6), "r" (a0), "r" (d0), "r" (d1), "r" (d2), "r" (d3)
  1862.   : "a0","a1","d0","d1","d2","d3", "memory");
  1863. }
  1864. static __inline void 
  1865. SetRGB32CM (BASE_PAR_DECL struct ColorMap *cm,unsigned long n,unsigned long r,unsigned long g,unsigned long b)
  1866. {
  1867.   BASE_EXT_DECL
  1868.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1869.   register struct ColorMap *a0 __asm("a0") = cm;
  1870.   register unsigned long d0 __asm("d0") = n;
  1871.   register unsigned long d1 __asm("d1") = r;
  1872.   register unsigned long d2 __asm("d2") = g;
  1873.   register unsigned long d3 __asm("d3") = b;
  1874.   __asm __volatile ("jsr a6@(-0x3e4)"
  1875.   : /* no output */
  1876.   : "r" (a6), "r" (a0), "r" (d0), "r" (d1), "r" (d2), "r" (d3)
  1877.   : "a0","a1","d0","d1","d2","d3", "memory");
  1878. }
  1879. static __inline void 
  1880. SetRGB4 (BASE_PAR_DECL struct ViewPort *vp,long index,unsigned long red,unsigned long green,unsigned long blue)
  1881. {
  1882.   BASE_EXT_DECL
  1883.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1884.   register struct ViewPort *a0 __asm("a0") = vp;
  1885.   register long d0 __asm("d0") = index;
  1886.   register unsigned long d1 __asm("d1") = red;
  1887.   register unsigned long d2 __asm("d2") = green;
  1888.   register unsigned long d3 __asm("d3") = blue;
  1889.   __asm __volatile ("jsr a6@(-0x120)"
  1890.   : /* no output */
  1891.   : "r" (a6), "r" (a0), "r" (d0), "r" (d1), "r" (d2), "r" (d3)
  1892.   : "a0","a1","d0","d1","d2","d3", "memory");
  1893. }
  1894. static __inline void 
  1895. SetRGB4CM (BASE_PAR_DECL struct ColorMap *colorMap,long index,unsigned long red,unsigned long green,unsigned long blue)
  1896. {
  1897.   BASE_EXT_DECL
  1898.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1899.   register struct ColorMap *a0 __asm("a0") = colorMap;
  1900.   register long d0 __asm("d0") = index;
  1901.   register unsigned long d1 __asm("d1") = red;
  1902.   register unsigned long d2 __asm("d2") = green;
  1903.   register unsigned long d3 __asm("d3") = blue;
  1904.   __asm __volatile ("jsr a6@(-0x276)"
  1905.   : /* no output */
  1906.   : "r" (a6), "r" (a0), "r" (d0), "r" (d1), "r" (d2), "r" (d3)
  1907.   : "a0","a1","d0","d1","d2","d3", "memory");
  1908. }
  1909. static __inline void 
  1910. SetRPAttrsA (BASE_PAR_DECL struct RastPort *rp,struct TagItem *tags)
  1911. {
  1912.   BASE_EXT_DECL
  1913.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1914.   register struct RastPort *a0 __asm("a0") = rp;
  1915.   register struct TagItem *a1 __asm("a1") = tags;
  1916.   __asm __volatile ("jsr a6@(-0x40e)"
  1917.   : /* no output */
  1918.   : "r" (a6), "r" (a0), "r" (a1)
  1919.   : "a0","a1","d0","d1", "memory");
  1920. }
  1921. static __inline void 
  1922. SetRast (BASE_PAR_DECL struct RastPort *rp,unsigned long pen)
  1923. {
  1924.   BASE_EXT_DECL
  1925.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1926.   register struct RastPort *a1 __asm("a1") = rp;
  1927.   register unsigned long d0 __asm("d0") = pen;
  1928.   __asm __volatile ("jsr a6@(-0xea)"
  1929.   : /* no output */
  1930.   : "r" (a6), "r" (a1), "r" (d0)
  1931.   : "a0","a1","d0","d1", "memory");
  1932. }
  1933. static __inline ULONG 
  1934. SetSoftStyle (BASE_PAR_DECL struct RastPort *rp,unsigned long style,unsigned long enable)
  1935. {
  1936.   BASE_EXT_DECL
  1937.   register ULONG  _res  __asm("d0");
  1938.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1939.   register struct RastPort *a1 __asm("a1") = rp;
  1940.   register unsigned long d0 __asm("d0") = style;
  1941.   register unsigned long d1 __asm("d1") = enable;
  1942.   __asm __volatile ("jsr a6@(-0x5a)"
  1943.   : "=r" (_res)
  1944.   : "r" (a6), "r" (a1), "r" (d0), "r" (d1)
  1945.   : "a0","a1","d0","d1", "memory");
  1946.   return _res;
  1947. }
  1948. static __inline ULONG 
  1949. SetWriteMask (BASE_PAR_DECL struct RastPort *rp,unsigned long msk)
  1950. {
  1951.   BASE_EXT_DECL
  1952.   register ULONG  _res  __asm("d0");
  1953.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1954.   register struct RastPort *a0 __asm("a0") = rp;
  1955.   register unsigned long d0 __asm("d0") = msk;
  1956.   __asm __volatile ("jsr a6@(-0x3d8)"
  1957.   : "=r" (_res)
  1958.   : "r" (a6), "r" (a0), "r" (d0)
  1959.   : "a0","a1","d0","d1", "memory");
  1960.   return _res;
  1961. }
  1962. static __inline void 
  1963. SortGList (BASE_PAR_DECL struct RastPort *rp)
  1964. {
  1965.   BASE_EXT_DECL
  1966.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1967.   register struct RastPort *a1 __asm("a1") = rp;
  1968.   __asm __volatile ("jsr a6@(-0x96)"
  1969.   : /* no output */
  1970.   : "r" (a6), "r" (a1)
  1971.   : "a0","a1","d0","d1", "memory");
  1972. }
  1973. static __inline void 
  1974. StripFont (BASE_PAR_DECL struct TextFont *font)
  1975. {
  1976.   BASE_EXT_DECL
  1977.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1978.   register struct TextFont *a0 __asm("a0") = font;
  1979.   __asm __volatile ("jsr a6@(-0x336)"
  1980.   : /* no output */
  1981.   : "r" (a6), "r" (a0)
  1982.   : "a0","a1","d0","d1", "memory");
  1983. }
  1984. static __inline void 
  1985. SyncSBitMap (BASE_PAR_DECL struct Layer *layer)
  1986. {
  1987.   BASE_EXT_DECL
  1988.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1989.   register struct Layer *a0 __asm("a0") = layer;
  1990.   __asm __volatile ("jsr a6@(-0x1bc)"
  1991.   : /* no output */
  1992.   : "r" (a6), "r" (a0)
  1993.   : "a0","a1","d0","d1", "memory");
  1994. }
  1995. static __inline LONG 
  1996. Text (BASE_PAR_DECL struct RastPort *rp,STRPTR string,unsigned long count)
  1997. {
  1998.   BASE_EXT_DECL
  1999.   register LONG  _res  __asm("d0");
  2000.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  2001.   register struct RastPort *a1 __asm("a1") = rp;
  2002.   register STRPTR a0 __asm("a0") = string;
  2003.   register unsigned long d0 __asm("d0") = count;
  2004.   __asm __volatile ("jsr a6@(-0x3c)"
  2005.   : "=r" (_res)
  2006.   : "r" (a6), "r" (a1), "r" (a0), "r" (d0)
  2007.   : "a0","a1","d0","d1", "memory");
  2008.   return _res;
  2009. }
  2010. static __inline WORD 
  2011. TextExtent (BASE_PAR_DECL struct RastPort *rp,STRPTR string,long count,struct TextExtent *textExtent)
  2012. {
  2013.   BASE_EXT_DECL
  2014.   register WORD  _res  __asm("d0");
  2015.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  2016.   register struct RastPort *a1 __asm("a1") = rp;
  2017.   register STRPTR a0 __asm("a0") = string;
  2018.   register long d0 __asm("d0") = count;
  2019.   register struct TextExtent *a2 __asm("a2") = textExtent;
  2020.   __asm __volatile ("jsr a6@(-0x2b2)"
  2021.   : "=r" (_res)
  2022.   : "r" (a6), "r" (a1), "r" (a0), "r" (d0), "r" (a2)
  2023.   : "a0","a1","a2","d0","d1", "memory");
  2024.   return _res;
  2025. }
  2026. static __inline ULONG 
  2027. 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)
  2028. {
  2029.   BASE_EXT_DECL
  2030.   register ULONG  _res  __asm("d0");
  2031.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  2032.   register struct RastPort *a1 __asm("a1") = rp;
  2033.   register STRPTR a0 __asm("a0") = string;
  2034.   register unsigned long d0 __asm("d0") = strLen;
  2035.   register struct TextExtent *a2 __asm("a2") = textExtent;
  2036.   register struct TextExtent *a3 __asm("a3") = constrainingExtent;
  2037.   register long d1 __asm("d1") = strDirection;
  2038.   register unsigned long d2 __asm("d2") = constrainingBitWidth;
  2039.   register unsigned long d3 __asm("d3") = constrainingBitHeight;
  2040.   __asm __volatile ("jsr a6@(-0x2b8)"
  2041.   : "=r" (_res)
  2042.   : "r" (a6), "r" (a1), "r" (a0), "r" (d0), "r" (a2), "r" (a3), "r" (d1), "r" (d2), "r" (d3)
  2043.   : "a0","a1","a2","a3","d0","d1","d2","d3", "memory");
  2044.   return _res;
  2045. }
  2046. static __inline WORD 
  2047. TextLength (BASE_PAR_DECL struct RastPort *rp,STRPTR string,unsigned long count)
  2048. {
  2049.   BASE_EXT_DECL
  2050.   register WORD  _res  __asm("d0");
  2051.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  2052.   register struct RastPort *a1 __asm("a1") = rp;
  2053.   register STRPTR a0 __asm("a0") = string;
  2054.   register unsigned long d0 __asm("d0") = count;
  2055.   __asm __volatile ("jsr a6@(-0x36)"
  2056.   : "=r" (_res)
  2057.   : "r" (a6), "r" (a1), "r" (a0), "r" (d0)
  2058.   : "a0","a1","d0","d1", "memory");
  2059.   return _res;
  2060. }
  2061. static __inline struct CopList *
  2062. UCopperListInit (BASE_PAR_DECL struct UCopList *uCopList,long n)
  2063. {
  2064.   BASE_EXT_DECL
  2065.   register struct CopList * _res  __asm("d0");
  2066.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  2067.   register struct UCopList *a0 __asm("a0") = uCopList;
  2068.   register long d0 __asm("d0") = n;
  2069.   __asm __volatile ("jsr a6@(-0x252)"
  2070.   : "=r" (_res)
  2071.   : "r" (a6), "r" (a0), "r" (d0)
  2072.   : "a0","a1","d0","d1", "memory");
  2073.   return _res;
  2074. }
  2075. static __inline void 
  2076. UnlockLayerRom (BASE_PAR_DECL struct Layer *layer)
  2077. {
  2078.   BASE_EXT_DECL
  2079.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  2080.   register struct Layer *a5 __asm("d7") = layer;
  2081.   __asm __volatile ("exg d7,a5; jsr a6@(-0x1b6); exg d7,a5"
  2082.   : /* no output */
  2083.   : "r" (a6), "r" (a5)
  2084.   : "a0","a1","d0","d1","d7", "memory");
  2085. }
  2086. static __inline LONG 
  2087. VBeamPos (BASE_PAR_DECL0)
  2088. {
  2089.   BASE_EXT_DECL
  2090.   register LONG  _res  __asm("d0");
  2091.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  2092.   __asm __volatile ("jsr a6@(-0x180)"
  2093.   : "=r" (_res)
  2094.   : "r" (a6)
  2095.   : "a0","a1","d0","d1", "memory");
  2096.   return _res;
  2097. }
  2098. static __inline void 
  2099. VPOrigin (BASE_PAR_DECL struct View *v,struct ViewPort *vp,Point *origin1,Point *origin2)
  2100. {
  2101.   BASE_EXT_DECL
  2102.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  2103.   register struct View *a0 __asm("a0") = v;
  2104.   register struct ViewPort *a1 __asm("a1") = vp;
  2105.   register Point *a2 __asm("a2") = origin1;
  2106.   register Point *a3 __asm("a3") = origin2;
  2107.   __asm __volatile ("jsr a6@(-0x3f6)"
  2108.   : /* no output */
  2109.   : "r" (a6), "r" (a0), "r" (a1), "r" (a2), "r" (a3)
  2110.   : "a0","a1","a2","a3","d0","d1", "memory");
  2111. }
  2112. static __inline BOOL 
  2113. VideoControl (BASE_PAR_DECL struct ColorMap *colorMap,struct TagItem *tagarray)
  2114. {
  2115.   BASE_EXT_DECL
  2116.   register BOOL  _res  __asm("d0");
  2117.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  2118.   register struct ColorMap *a0 __asm("a0") = colorMap;
  2119.   register struct TagItem *a1 __asm("a1") = tagarray;
  2120.   __asm __volatile ("jsr a6@(-0x2c4)"
  2121.   : "=r" (_res)
  2122.   : "r" (a6), "r" (a0), "r" (a1)
  2123.   : "a0","a1","d0","d1", "memory");
  2124.   return _res;
  2125. }
  2126. #ifndef NO_INLINE_STDARG
  2127. #define VideoControlTags(a0, tags...) \
  2128.   ({ struct TagItem _tags[] = { tags }; VideoControl ((a0), _tags); })
  2129. #endif /* not NO_INLINE_STDARG */
  2130. static __inline void 
  2131. WaitBOVP (BASE_PAR_DECL struct ViewPort *vp)
  2132. {
  2133.   BASE_EXT_DECL
  2134.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  2135.   register struct ViewPort *a0 __asm("a0") = vp;
  2136.   __asm __volatile ("jsr a6@(-0x192)"
  2137.   : /* no output */
  2138.   : "r" (a6), "r" (a0)
  2139.   : "a0","a1","d0","d1", "memory");
  2140. }
  2141. static __inline void 
  2142. WaitBlit (BASE_PAR_DECL0)
  2143. {
  2144.   BASE_EXT_DECL
  2145.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  2146.   __asm __volatile ("jsr a6@(-0xe4)"
  2147.   : /* no output */
  2148.   : "r" (a6)
  2149.   : "a0","a1","d0","d1", "memory");
  2150. }
  2151. static __inline void 
  2152. WaitTOF (BASE_PAR_DECL0)
  2153. {
  2154.   BASE_EXT_DECL
  2155.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  2156.   __asm __volatile ("jsr a6@(-0x10e)"
  2157.   : /* no output */
  2158.   : "r" (a6)
  2159.   : "a0","a1","d0","d1", "memory");
  2160. }
  2161. static __inline WORD 
  2162. WeighTAMatch (BASE_PAR_DECL struct TextAttr *reqTextAttr,struct TextAttr *targetTextAttr,struct TagItem *targetTags)
  2163. {
  2164.   BASE_EXT_DECL
  2165.   register WORD  _res  __asm("d0");
  2166.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  2167.   register struct TextAttr *a0 __asm("a0") = reqTextAttr;
  2168.   register struct TextAttr *a1 __asm("a1") = targetTextAttr;
  2169.   register struct TagItem *a2 __asm("a2") = targetTags;
  2170.   __asm __volatile ("jsr a6@(-0x324)"
  2171.   : "=r" (_res)
  2172.   : "r" (a6), "r" (a0), "r" (a1), "r" (a2)
  2173.   : "a0","a1","a2","d0","d1", "memory");
  2174.   return _res;
  2175. }
  2176. #ifndef NO_INLINE_STDARG
  2177. #define WeighTAMatchTags(a0, a1, tags...) \
  2178.   ({ struct TagItem _tags[] = { tags }; WeighTAMatch ((a0), (a1), _tags); })
  2179. #endif /* not NO_INLINE_STDARG */
  2180. static __inline LONG 
  2181. WritePixel (BASE_PAR_DECL struct RastPort *rp,long x,long y)
  2182. {
  2183.   BASE_EXT_DECL
  2184.   register LONG  _res  __asm("d0");
  2185.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  2186.   register struct RastPort *a1 __asm("a1") = rp;
  2187.   register long d0 __asm("d0") = x;
  2188.   register long d1 __asm("d1") = y;
  2189.   __asm __volatile ("jsr a6@(-0x144)"
  2190.   : "=r" (_res)
  2191.   : "r" (a6), "r" (a1), "r" (d0), "r" (d1)
  2192.   : "a0","a1","d0","d1", "memory");
  2193.   return _res;
  2194. }
  2195. static __inline LONG 
  2196. WritePixelArray8 (BASE_PAR_DECL struct RastPort *rp,unsigned long xstart,unsigned long ystart,unsigned long xstop,unsigned long ystop,UBYTE *array,struct RastPort *temprp)
  2197. {
  2198.   BASE_EXT_DECL
  2199.   register LONG  _res  __asm("d0");
  2200.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  2201.   register struct RastPort *a0 __asm("a0") = rp;
  2202.   register unsigned long d0 __asm("d0") = xstart;
  2203.   register unsigned long d1 __asm("d1") = ystart;
  2204.   register unsigned long d2 __asm("d2") = xstop;
  2205.   register unsigned long d3 __asm("d3") = ystop;
  2206.   register UBYTE *a2 __asm("a2") = array;
  2207.   register struct RastPort *a1 __asm("a1") = temprp;
  2208.   __asm __volatile ("jsr a6@(-0x312)"
  2209.   : "=r" (_res)
  2210.   : "r" (a6), "r" (a0), "r" (d0), "r" (d1), "r" (d2), "r" (d3), "r" (a2), "r" (a1)
  2211.   : "a0","a1","a2","d0","d1","d2","d3", "memory");
  2212.   return _res;
  2213. }
  2214. static __inline LONG 
  2215. WritePixelLine8 (BASE_PAR_DECL struct RastPort *rp,unsigned long xstart,unsigned long ystart,unsigned long width,UBYTE *array,struct RastPort *tempRP)
  2216. {
  2217.   BASE_EXT_DECL
  2218.   register LONG  _res  __asm("d0");
  2219.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  2220.   register struct RastPort *a0 __asm("a0") = rp;
  2221.   register unsigned long d0 __asm("d0") = xstart;
  2222.   register unsigned long d1 __asm("d1") = ystart;
  2223.   register unsigned long d2 __asm("d2") = width;
  2224.   register UBYTE *a2 __asm("a2") = array;
  2225.   register struct RastPort *a1 __asm("a1") = tempRP;
  2226.   __asm __volatile ("jsr a6@(-0x306)"
  2227.   : "=r" (_res)
  2228.   : "r" (a6), "r" (a0), "r" (d0), "r" (d1), "r" (d2), "r" (a2), "r" (a1)
  2229.   : "a0","a1","a2","d0","d1","d2", "memory");
  2230.   return _res;
  2231. }
  2232. static __inline BOOL 
  2233. XorRectRegion (BASE_PAR_DECL struct Region *region,struct Rectangle *rectangle)
  2234. {
  2235.   BASE_EXT_DECL
  2236.   register BOOL  _res  __asm("d0");
  2237.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  2238.   register struct Region *a0 __asm("a0") = region;
  2239.   register struct Rectangle *a1 __asm("a1") = rectangle;
  2240.   __asm __volatile ("jsr a6@(-0x22e)"
  2241.   : "=r" (_res)
  2242.   : "r" (a6), "r" (a0), "r" (a1)
  2243.   : "a0","a1","d0","d1", "memory");
  2244.   return _res;
  2245. }
  2246. static __inline BOOL 
  2247. XorRegionRegion (BASE_PAR_DECL struct Region *srcRegion,struct Region *destRegion)
  2248. {
  2249.   BASE_EXT_DECL
  2250.   register BOOL  _res  __asm("d0");
  2251.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  2252.   register struct Region *a0 __asm("a0") = srcRegion;
  2253.   register struct Region *a1 __asm("a1") = destRegion;
  2254.   __asm __volatile ("jsr a6@(-0x26a)"
  2255.   : "=r" (_res)
  2256.   : "r" (a6), "r" (a0), "r" (a1)
  2257.   : "a0","a1","d0","d1", "memory");
  2258.   return _res;
  2259. }
  2260. #undef BASE_EXT_DECL
  2261. #undef BASE_PAR_DECL
  2262. #undef BASE_PAR_DECL0
  2263. #undef BASE_NAME
  2264.  
  2265. __END_DECLS
  2266.  
  2267. #endif /* _INLINE_GRAPHICS_H */
  2268.