home *** CD-ROM | disk | FTP | other *** search
/ Fresh Fish 4 / FreshFish_May-June1994.bin / bbs / cbm / os-include.lha / os-include / inline / commodities.h < prev    next >
C/C++ Source or Header  |  1993-12-09  |  10KB  |  357 lines

  1. #ifndef _INLINE_COMMODITIES_H
  2. #define _INLINE_COMMODITIES_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 CxBase*  CxBase;
  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 CxBase
  18. #endif
  19.  
  20. static __inline LONG 
  21. ActivateCxObj (BASE_PAR_DECL CxObj *co,long true)
  22. {
  23.   BASE_EXT_DECL
  24.   register LONG  _res  __asm("d0");
  25.   register struct CxBase* a6 __asm("a6") = BASE_NAME;
  26.   register CxObj *a0 __asm("a0") = co;
  27.   register long d0 __asm("d0") = true;
  28.   __asm __volatile ("jsr a6@(-0x2a)"
  29.   : "=r" (_res)
  30.   : "r" (a6), "r" (a0), "r" (d0)
  31.   : "a0","a1","d0","d1", "memory");
  32.   return _res;
  33. }
  34. static __inline void 
  35. AddIEvents (BASE_PAR_DECL struct InputEvent *events)
  36. {
  37.   BASE_EXT_DECL
  38.   register struct CxBase* a6 __asm("a6") = BASE_NAME;
  39.   register struct InputEvent *a0 __asm("a0") = events;
  40.   __asm __volatile ("jsr a6@(-0xb4)"
  41.   : /* no output */
  42.   : "r" (a6), "r" (a0)
  43.   : "a0","a1","d0","d1", "memory");
  44. }
  45. static __inline void 
  46. AttachCxObj (BASE_PAR_DECL CxObj *headObj,CxObj *co)
  47. {
  48.   BASE_EXT_DECL
  49.   register struct CxBase* a6 __asm("a6") = BASE_NAME;
  50.   register CxObj *a0 __asm("a0") = headObj;
  51.   register CxObj *a1 __asm("a1") = co;
  52.   __asm __volatile ("jsr a6@(-0x54)"
  53.   : /* no output */
  54.   : "r" (a6), "r" (a0), "r" (a1)
  55.   : "a0","a1","d0","d1", "memory");
  56. }
  57. static __inline void 
  58. ClearCxObjError (BASE_PAR_DECL CxObj *co)
  59. {
  60.   BASE_EXT_DECL
  61.   register struct CxBase* a6 __asm("a6") = BASE_NAME;
  62.   register CxObj *a0 __asm("a0") = co;
  63.   __asm __volatile ("jsr a6@(-0x48)"
  64.   : /* no output */
  65.   : "r" (a6), "r" (a0)
  66.   : "a0","a1","d0","d1", "memory");
  67. }
  68. static __inline CxObj *
  69. CreateCxObj (BASE_PAR_DECL unsigned long type,long arg1,long arg2)
  70. {
  71.   BASE_EXT_DECL
  72.   register CxObj * _res  __asm("d0");
  73.   register struct CxBase* a6 __asm("a6") = BASE_NAME;
  74.   register unsigned long d0 __asm("d0") = type;
  75.   register long a0 __asm("a0") = arg1;
  76.   register long a1 __asm("a1") = arg2;
  77.   __asm __volatile ("jsr a6@(-0x1e)"
  78.   : "=r" (_res)
  79.   : "r" (a6), "r" (d0), "r" (a0), "r" (a1)
  80.   : "a0","a1","d0","d1", "memory");
  81.   return _res;
  82. }
  83. static __inline CxObj *
  84. CxBroker (BASE_PAR_DECL struct NewBroker *nb,LONG *error)
  85. {
  86.   BASE_EXT_DECL
  87.   register CxObj * _res  __asm("d0");
  88.   register struct CxBase* a6 __asm("a6") = BASE_NAME;
  89.   register struct NewBroker *a0 __asm("a0") = nb;
  90.   register LONG *d0 __asm("d0") = error;
  91.   __asm __volatile ("jsr a6@(-0x24)"
  92.   : "=r" (_res)
  93.   : "r" (a6), "r" (a0), "r" (d0)
  94.   : "a0","a1","d0","d1", "memory");
  95.   return _res;
  96. }
  97. static __inline APTR 
  98. CxMsgData (BASE_PAR_DECL CxMsg *cxm)
  99. {
  100.   BASE_EXT_DECL
  101.   register APTR  _res  __asm("d0");
  102.   register struct CxBase* a6 __asm("a6") = BASE_NAME;
  103.   register CxMsg *a0 __asm("a0") = cxm;
  104.   __asm __volatile ("jsr a6@(-0x90)"
  105.   : "=r" (_res)
  106.   : "r" (a6), "r" (a0)
  107.   : "a0","a1","d0","d1", "memory");
  108.   return _res;
  109. }
  110. static __inline LONG 
  111. CxMsgID (BASE_PAR_DECL CxMsg *cxm)
  112. {
  113.   BASE_EXT_DECL
  114.   register LONG  _res  __asm("d0");
  115.   register struct CxBase* a6 __asm("a6") = BASE_NAME;
  116.   register CxMsg *a0 __asm("a0") = cxm;
  117.   __asm __volatile ("jsr a6@(-0x96)"
  118.   : "=r" (_res)
  119.   : "r" (a6), "r" (a0)
  120.   : "a0","a1","d0","d1", "memory");
  121.   return _res;
  122. }
  123. static __inline ULONG 
  124. CxMsgType (BASE_PAR_DECL CxMsg *cxm)
  125. {
  126.   BASE_EXT_DECL
  127.   register ULONG  _res  __asm("d0");
  128.   register struct CxBase* a6 __asm("a6") = BASE_NAME;
  129.   register CxMsg *a0 __asm("a0") = cxm;
  130.   __asm __volatile ("jsr a6@(-0x8a)"
  131.   : "=r" (_res)
  132.   : "r" (a6), "r" (a0)
  133.   : "a0","a1","d0","d1", "memory");
  134.   return _res;
  135. }
  136. static __inline LONG 
  137. CxObjError (BASE_PAR_DECL CxObj *co)
  138. {
  139.   BASE_EXT_DECL
  140.   register LONG  _res  __asm("d0");
  141.   register struct CxBase* a6 __asm("a6") = BASE_NAME;
  142.   register CxObj *a0 __asm("a0") = co;
  143.   __asm __volatile ("jsr a6@(-0x42)"
  144.   : "=r" (_res)
  145.   : "r" (a6), "r" (a0)
  146.   : "a0","a1","d0","d1", "memory");
  147.   return _res;
  148. }
  149. static __inline ULONG 
  150. CxObjType (BASE_PAR_DECL CxObj *co)
  151. {
  152.   BASE_EXT_DECL
  153.   register ULONG  _res  __asm("d0");
  154.   register struct CxBase* a6 __asm("a6") = BASE_NAME;
  155.   register CxObj *a0 __asm("a0") = co;
  156.   __asm __volatile ("jsr a6@(-0x3c)"
  157.   : "=r" (_res)
  158.   : "r" (a6), "r" (a0)
  159.   : "a0","a1","d0","d1", "memory");
  160.   return _res;
  161. }
  162. static __inline void 
  163. DeleteCxObj (BASE_PAR_DECL CxObj *co)
  164. {
  165.   BASE_EXT_DECL
  166.   register struct CxBase* a6 __asm("a6") = BASE_NAME;
  167.   register CxObj *a0 __asm("a0") = co;
  168.   __asm __volatile ("jsr a6@(-0x30)"
  169.   : /* no output */
  170.   : "r" (a6), "r" (a0)
  171.   : "a0","a1","d0","d1", "memory");
  172. }
  173. static __inline void 
  174. DeleteCxObjAll (BASE_PAR_DECL CxObj *co)
  175. {
  176.   BASE_EXT_DECL
  177.   register struct CxBase* a6 __asm("a6") = BASE_NAME;
  178.   register CxObj *a0 __asm("a0") = co;
  179.   __asm __volatile ("jsr a6@(-0x36)"
  180.   : /* no output */
  181.   : "r" (a6), "r" (a0)
  182.   : "a0","a1","d0","d1", "memory");
  183. }
  184. static __inline void 
  185. DisposeCxMsg (BASE_PAR_DECL CxMsg *cxm)
  186. {
  187.   BASE_EXT_DECL
  188.   register struct CxBase* a6 __asm("a6") = BASE_NAME;
  189.   register CxMsg *a0 __asm("a0") = cxm;
  190.   __asm __volatile ("jsr a6@(-0xa8)"
  191.   : /* no output */
  192.   : "r" (a6), "r" (a0)
  193.   : "a0","a1","d0","d1", "memory");
  194. }
  195. static __inline void 
  196. DivertCxMsg (BASE_PAR_DECL CxMsg *cxm,CxObj *headObj,CxObj *returnObj)
  197. {
  198.   BASE_EXT_DECL
  199.   register struct CxBase* a6 __asm("a6") = BASE_NAME;
  200.   register CxMsg *a0 __asm("a0") = cxm;
  201.   register CxObj *a1 __asm("a1") = headObj;
  202.   register CxObj *a2 __asm("a2") = returnObj;
  203.   __asm __volatile ("jsr a6@(-0x9c)"
  204.   : /* no output */
  205.   : "r" (a6), "r" (a0), "r" (a1), "r" (a2)
  206.   : "a0","a1","a2","d0","d1", "memory");
  207. }
  208. static __inline void 
  209. EnqueueCxObj (BASE_PAR_DECL CxObj *headObj,CxObj *co)
  210. {
  211.   BASE_EXT_DECL
  212.   register struct CxBase* a6 __asm("a6") = BASE_NAME;
  213.   register CxObj *a0 __asm("a0") = headObj;
  214.   register CxObj *a1 __asm("a1") = co;
  215.   __asm __volatile ("jsr a6@(-0x5a)"
  216.   : /* no output */
  217.   : "r" (a6), "r" (a0), "r" (a1)
  218.   : "a0","a1","d0","d1", "memory");
  219. }
  220. static __inline void 
  221. InsertCxObj (BASE_PAR_DECL CxObj *headObj,CxObj *co,CxObj *pred)
  222. {
  223.   BASE_EXT_DECL
  224.   register struct CxBase* a6 __asm("a6") = BASE_NAME;
  225.   register CxObj *a0 __asm("a0") = headObj;
  226.   register CxObj *a1 __asm("a1") = co;
  227.   register CxObj *a2 __asm("a2") = pred;
  228.   __asm __volatile ("jsr a6@(-0x60)"
  229.   : /* no output */
  230.   : "r" (a6), "r" (a0), "r" (a1), "r" (a2)
  231.   : "a0","a1","a2","d0","d1", "memory");
  232. }
  233. static __inline BOOL 
  234. InvertKeyMap (BASE_PAR_DECL unsigned long ansiCode,struct InputEvent *event,struct KeyMap *km)
  235. {
  236.   BASE_EXT_DECL
  237.   register BOOL  _res  __asm("d0");
  238.   register struct CxBase* a6 __asm("a6") = BASE_NAME;
  239.   register unsigned long d0 __asm("d0") = ansiCode;
  240.   register struct InputEvent *a0 __asm("a0") = event;
  241.   register struct KeyMap *a1 __asm("a1") = km;
  242.   __asm __volatile ("jsr a6@(-0xae)"
  243.   : "=r" (_res)
  244.   : "r" (a6), "r" (d0), "r" (a0), "r" (a1)
  245.   : "a0","a1","d0","d1", "memory");
  246.   return _res;
  247. }
  248. static __inline BOOL 
  249. MatchIX (BASE_PAR_DECL struct InputEvent *event,IX *ix)
  250. {
  251.   BASE_EXT_DECL
  252.   register BOOL  _res  __asm("d0");
  253.   register struct CxBase* a6 __asm("a6") = BASE_NAME;
  254.   register struct InputEvent *a0 __asm("a0") = event;
  255.   register IX *a1 __asm("a1") = ix;
  256.   __asm __volatile ("jsr a6@(-0xcc)"
  257.   : "=r" (_res)
  258.   : "r" (a6), "r" (a0), "r" (a1)
  259.   : "a0","a1","d0","d1", "memory");
  260.   return _res;
  261. }
  262. static __inline LONG 
  263. ParseIX (BASE_PAR_DECL STRPTR description,IX *ix)
  264. {
  265.   BASE_EXT_DECL
  266.   register LONG  _res  __asm("d0");
  267.   register struct CxBase* a6 __asm("a6") = BASE_NAME;
  268.   register STRPTR a0 __asm("a0") = description;
  269.   register IX *a1 __asm("a1") = ix;
  270.   __asm __volatile ("jsr a6@(-0x84)"
  271.   : "=r" (_res)
  272.   : "r" (a6), "r" (a0), "r" (a1)
  273.   : "a0","a1","d0","d1", "memory");
  274.   return _res;
  275. }
  276. static __inline void 
  277. RemoveCxObj (BASE_PAR_DECL CxObj *co)
  278. {
  279.   BASE_EXT_DECL
  280.   register struct CxBase* a6 __asm("a6") = BASE_NAME;
  281.   register CxObj *a0 __asm("a0") = co;
  282.   __asm __volatile ("jsr a6@(-0x66)"
  283.   : /* no output */
  284.   : "r" (a6), "r" (a0)
  285.   : "a0","a1","d0","d1", "memory");
  286. }
  287. static __inline void 
  288. RouteCxMsg (BASE_PAR_DECL CxMsg *cxm,CxObj *co)
  289. {
  290.   BASE_EXT_DECL
  291.   register struct CxBase* a6 __asm("a6") = BASE_NAME;
  292.   register CxMsg *a0 __asm("a0") = cx