home *** CD-ROM | disk | FTP | other *** search
/ Amiga Elysian Archive / AmigaElysianArchive.iso / prog / c / gcc233.lha / os-include / inline / dos.h < prev    next >
C/C++ Source or Header  |  1992-12-29  |  65KB  |  2,162 lines

  1. #ifndef _INLINE_DOS_H
  2. #define _INLINE_DOS_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 DosLibrary * DOSBase;
  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 DOSBase
  18. #endif
  19.  
  20. static __inline void 
  21. AbortPkt (BASE_PAR_DECL struct MsgPort *port,struct DosPacket *pkt)
  22. {
  23.   BASE_EXT_DECL
  24.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  25.   register struct MsgPort *d1 __asm("d1") = port;
  26.   register struct DosPacket *d2 __asm("d2") = pkt;
  27.   __asm __volatile ("jsr a6@(-0x108)"
  28.   : /* no output */
  29.   : "r" (a6), "r" (d1), "r" (d2)
  30.   : "a0","a1","d0","d1","d2", "memory");
  31. }
  32. static __inline LONG 
  33. AddBuffers (BASE_PAR_DECL STRPTR name,long number)
  34. {
  35.   BASE_EXT_DECL
  36.   register LONG  _res  __asm("d0");
  37.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  38.   register STRPTR d1 __asm("d1") = name;
  39.   register long d2 __asm("d2") = number;
  40.   __asm __volatile ("jsr a6@(-0x2dc)"
  41.   : "=r" (_res)
  42.   : "r" (a6), "r" (d1), "r" (d2)
  43.   : "a0","a1","d0","d1","d2", "memory");
  44.   return _res;
  45. }
  46. static __inline LONG 
  47. AddDosEntry (BASE_PAR_DECL struct DosList *dlist)
  48. {
  49.   BASE_EXT_DECL
  50.   register LONG  _res  __asm("d0");
  51.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  52.   register struct DosList *d1 __asm("d1") = dlist;
  53.   __asm __volatile ("jsr a6@(-0x2a6)"
  54.   : "=r" (_res)
  55.   : "r" (a6), "r" (d1)
  56.   : "a0","a1","d0","d1", "memory");
  57.   return _res;
  58. }
  59. static __inline BOOL 
  60. AddPart (BASE_PAR_DECL STRPTR dirname,STRPTR filename,unsigned long size)
  61. {
  62.   BASE_EXT_DECL
  63.   register BOOL  _res  __asm("d0");
  64.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  65.   register STRPTR d1 __asm("d1") = dirname;
  66.   register STRPTR d2 __asm("d2") = filename;
  67.   register unsigned long d3 __asm("d3") = size;
  68.   __asm __volatile ("jsr a6@(-0x372)"
  69.   : "=r" (_res)
  70.   : "r" (a6), "r" (d1), "r" (d2), "r" (d3)
  71.   : "a0","a1","d0","d1","d2","d3", "memory");
  72.   return _res;
  73. }
  74. static __inline LONG 
  75. AddSegment (BASE_PAR_DECL STRPTR name,BPTR seg,long system)
  76. {
  77.   BASE_EXT_DECL
  78.   register LONG  _res  __asm("d0");
  79.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  80.   register STRPTR d1 __asm("d1") = name;
  81.   register BPTR d2 __asm("d2") = seg;
  82.   register long d3 __asm("d3") = system;
  83.   __asm __volatile ("jsr a6@(-0x306)"
  84.   : "=r" (_res)
  85.   : "r" (a6), "r" (d1), "r" (d2), "r" (d3)
  86.   : "a0","a1","d0","d1","d2","d3", "memory");
  87.   return _res;
  88. }
  89. static __inline APTR 
  90. AllocDosObject (BASE_PAR_DECL unsigned long type,struct TagItem *tags)
  91. {
  92.   BASE_EXT_DECL
  93.   register APTR  _res  __asm("d0");
  94.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  95.   register unsigned long d1 __asm("d1") = type;
  96.   register struct TagItem *d2 __asm("d2") = tags;
  97.   __asm __volatile ("jsr a6@(-0xe4)"
  98.   : "=r" (_res)
  99.   : "r" (a6), "r" (d1), "r" (d2)
  100.   : "a0","a1","d0","d1","d2", "memory");
  101.   return _res;
  102. }
  103. #ifndef NO_INLINE_STDARG
  104. #define AllocDosObjectTags(a0, tags...) \
  105.   ({ struct TagItem _tags[] = { tags }; AllocDosObject ((a0), _tags); })
  106. #endif /* not NO_INLINE_STDARG */
  107. #define AllocDosObjectTagList(a0, a1) AllocDosObject ((a0), (a1))
  108. static __inline BOOL 
  109. AssignAdd (BASE_PAR_DECL STRPTR name,BPTR lock)
  110. {
  111.   BASE_EXT_DECL
  112.   register BOOL  _res  __asm("d0");
  113.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  114.   register STRPTR d1 __asm("d1") = name;
  115.   register BPTR d2 __asm("d2") = lock;
  116.   __asm __volatile ("jsr a6@(-0x276)"
  117.   : "=r" (_res)
  118.   : "r" (a6), "r" (d1), "r" (d2)
  119.   : "a0","a1","d0","d1","d2", "memory");
  120.   return _res;
  121. }
  122. static __inline BOOL 
  123. AssignLate (BASE_PAR_DECL STRPTR name,STRPTR path)
  124. {
  125.   BASE_EXT_DECL
  126.   register BOOL  _res  __asm("d0");
  127.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  128.   register STRPTR d1 __asm("d1") = name;
  129.   register STRPTR d2 __asm("d2") = path;
  130.   __asm __volatile ("jsr a6@(-0x26a)"
  131.   : "=r" (_res)
  132.   : "r" (a6), "r" (d1), "r" (d2)
  133.   : "a0","a1","d0","d1","d2", "memory");
  134.   return _res;
  135. }
  136. static __inline LONG 
  137. AssignLock (BASE_PAR_DECL STRPTR name,BPTR lock)
  138. {
  139.   BASE_EXT_DECL
  140.   register LONG  _res  __asm("d0");
  141.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  142.   register STRPTR d1 __asm("d1") = name;
  143.   register BPTR d2 __asm("d2") = lock;
  144.   __asm __volatile ("jsr a6@(-0x264)"
  145.   : "=r" (_res)
  146.   : "r" (a6), "r" (d1), "r" (d2)
  147.   : "a0","a1","d0","d1","d2", "memory");
  148.   return _res;
  149. }
  150. static __inline BOOL 
  151. AssignPath (BASE_PAR_DECL STRPTR name,STRPTR path)
  152. {
  153.   BASE_EXT_DECL
  154.   register BOOL  _res  __asm("d0");
  155.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  156.   register STRPTR d1 __asm("d1") = name;
  157.   register STRPTR d2 __asm("d2") = path;
  158.   __asm __volatile ("jsr a6@(-0x270)"
  159.   : "=r" (_res)
  160.   : "r" (a6), "r" (d1), "r" (d2)
  161.   : "a0","a1","d0","d1","d2", "memory");
  162.   return _res;
  163. }
  164. static __inline struct DosList *
  165. AttemptLockDosList (BASE_PAR_DECL unsigned long flags)
  166. {
  167.   BASE_EXT_DECL
  168.   register struct DosList * _res  __asm("d0");
  169.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  170.   register unsigned long d1 __asm("d1") = flags;
  171.   __asm __volatile ("jsr a6@(-0x29a)"
  172.   : "=r" (_res)
  173.   : "r" (a6), "r" (d1)
  174.   : "a0","a1","d0","d1", "memory");
  175.   return _res;
  176. }
  177. static __inline LONG 
  178. ChangeMode (BASE_PAR_DECL long type,BPTR fh,long newmode)
  179. {
  180.   BASE_EXT_DECL
  181.   register LONG  _res  __asm("d0");
  182.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  183.   register long d1 __asm("d1") = type;
  184.   register BPTR d2 __asm("d2") = fh;
  185.   register long d3 __asm("d3") = newmode;
  186.   __asm __volatile ("jsr a6@(-0x1c2)"
  187.   : "=r" (_res)
  188.   : "r" (a6), "r" (d1), "r" (d2), "r" (d3)
  189.   : "a0","a1","d0","d1","d2","d3", "memory");
  190.   return _res;
  191. }
  192. static __inline LONG 
  193. CheckSignal (BASE_PAR_DECL long mask)
  194. {
  195.   BASE_EXT_DECL
  196.   register LONG  _res  __asm("d0");
  197.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  198.   register long d1 __asm("d1") = mask;
  199.   __asm __volatile ("jsr a6@(-0x318)"
  200.   : "=r" (_res)
  201.   : "r" (a6), "r" (d1)
  202.   : "a0","a1","d0","d1", "memory");
  203.   return _res;
  204. }
  205. static __inline struct CommandLineInterface *
  206. Cli (BASE_PAR_DECL0)
  207. {
  208.   BASE_EXT_DECL
  209.   register struct CommandLineInterface * _res  __asm("d0");
  210.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  211.   __asm __volatile ("jsr a6@(-0x1ec)"
  212.   : "=r" (_res)
  213.   : "r" (a6)
  214.   : "a0","a1","d0","d1", "memory");
  215.   return _res;
  216. }
  217. static __inline LONG 
  218. CliInitNewcli (BASE_PAR_DECL struct DosPacket *dp)
  219. {
  220.   BASE_EXT_DECL
  221.   register LONG  _res  __asm("d0");
  222.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  223.   register struct DosPacket *a0 __asm("a0") = dp;
  224.   __asm __volatile ("jsr a6@(-0x3a2)"
  225.   : "=r" (_res)
  226.   : "r" (a6), "r" (a0)
  227.   : "a0","a1","d0","d1", "memory");
  228.   return _res;
  229. }
  230. static __inline LONG 
  231. CliInitRun (BASE_PAR_DECL struct DosPacket *dp)
  232. {
  233.   BASE_EXT_DECL
  234.   register LONG  _res  __asm("d0");
  235.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  236.   register struct DosPacket *a0 __asm("a0") = dp;
  237.   __asm __volatile ("jsr a6@(-0x3a8)"
  238.   : "=r" (_res)
  239.   : "r" (a6), "r" (a0)
  240.   : "a0","a1","d0","d1", "memory");
  241.   return _res;
  242. }
  243. static __inline LONG 
  244. Close (BASE_PAR_DECL BPTR file)
  245. {
  246.   BASE_EXT_DECL
  247.   register LONG  _res  __asm("d0");
  248.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  249.   register BPTR d1 __asm("d1") = file;
  250.   __asm __volatile ("jsr a6@(-0x24)"
  251.   : "=r" (_res)
  252.   : "r" (a6), "r" (d1)
  253.   : "a0","a1","d0","d1", "memory");
  254.   return _res;
  255. }
  256. static __inline LONG 
  257. CompareDates (BASE_PAR_DECL struct DateStamp *date1,struct DateStamp *date2)
  258. {
  259.   BASE_EXT_DECL
  260.   register LONG  _res  __asm("d0");
  261.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  262.   register struct DateStamp *d1 __asm("d1") = date1;
  263.   register struct DateStamp *d2 __asm("d2") = date2;
  264.   __asm __volatile ("jsr a6@(-0x2e2)"
  265.   : "=r" (_res)
  266.   : "r" (a6), "r" (d1), "r" (d2)
  267.   : "a0","a1","d0","d1","d2", "memory");
  268.   return _res;
  269. }
  270. static __inline BPTR 
  271. CreateDir (BASE_PAR_DECL STRPTR name)
  272. {
  273.   BASE_EXT_DECL
  274.   register BPTR  _res  __asm("d0");
  275.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  276.   register STRPTR d1 __asm("d1") = name;
  277.   __asm __volatile ("jsr a6@(-0x78)"
  278.   : "=r" (_res)
  279.   : "r" (a6), "r" (d1)
  280.   : "a0","a1","d0","d1", "memory");
  281.   return _res;
  282. }
  283. static __inline struct Process *
  284. CreateNewProc (BASE_PAR_DECL struct TagItem *tags)
  285. {
  286.   BASE_EXT_DECL
  287.   register struct Process * _res  __asm("d0");
  288.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  289.   register struct TagItem *d1 __asm("d1") = tags;
  290.   __asm __volatile ("jsr a6@(-0x1f2)"
  291.   : "=r" (_res)
  292.   : "r" (a6), "r" (d1)
  293.   : "a0","a1","d0","d1", "memory");
  294.   return _res;
  295. }
  296. #ifndef NO_INLINE_STDARG
  297. #define CreateNewProcTags(tags...) \
  298.   ({ struct TagItem _tags[] = { tags }; CreateNewProc (_tags); })
  299. #endif /* not NO_INLINE_STDARG */
  300. #define CreateNewProcTagList(a0) CreateNewProc ((a0))
  301. static __inline struct MsgPort *
  302. CreateProc (BASE_PAR_DECL STRPTR name,long pri,BPTR segList,long stackSize)
  303. {
  304.   BASE_EXT_DECL
  305.   register struct MsgPort * _res  __asm("d0");
  306.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  307.   register STRPTR d1 __asm("d1") = name;
  308.   register long d2 __asm("d2") = pri;
  309.   register BPTR d3 __asm("d3") = segList;
  310.   register long d4 __asm("d4") = stackSize;
  311.   __asm __volatile ("jsr a6@(-0x8a)"
  312.   : "=r" (_res)
  313.   : "r" (a6), "r" (d1), "r" (d2), "r" (d3), "r" (d4)
  314.   : "a0","a1","d0","d1","d2","d3","d4", "memory");
  315.   return _res;
  316. }
  317. static __inline BPTR 
  318. CurrentDir (BASE_PAR_DECL BPTR lock)
  319. {
  320.   BASE_EXT_DECL
  321.   register BPTR  _res  __asm("d0");
  322.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  323.   register BPTR d1 __asm("d1") = lock;
  324.   __asm __volatile ("jsr a6@(-0x7e)"
  325.   : "=r" (_res)
  326.   : "r" (a6), "r" (d1)
  327.   : "a0","a1","d0","d1", "memory");
  328.   return _res;
  329. }
  330. static __inline struct DateStamp *
  331. DateStamp (BASE_PAR_DECL struct DateStamp *date)
  332. {
  333.   BASE_EXT_DECL
  334.   register struct DateStamp * _res  __asm("d0");
  335.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  336.   register struct DateStamp *d1 __asm("d1") = date;
  337.   __asm __volatile ("jsr a6@(-0xc0)"
  338.   : "=r" (_res)
  339.   : "r" (a6), "r" (d1)
  340.   : "a0","a1","d0","d1", "memory");
  341.   return _res;
  342. }
  343. static __inline LONG 
  344. DateToStr (BASE_PAR_DECL struct DateTime *datetime)
  345. {
  346.   BASE_EXT_DECL
  347.   register LONG  _res  __asm("d0");
  348.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  349.   register struct DateTime *d1 __asm("d1") = datetime;
  350.   __asm __volatile ("jsr a6@(-0x2e8)"
  351.   : "=r" (_res)
  352.   : "r" (a6), "r" (d1)
  353.   : "a0","a1","d0","d1", "memory");
  354.   return _res;
  355. }
  356. static __inline void 
  357. Delay (BASE_PAR_DECL long timeout)
  358. {
  359.   BASE_EXT_DECL
  360.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  361.   register long d1 __asm("d1") = timeout;
  362.   __asm __volatile ("jsr a6@(-0xc6)"
  363.   : /* no output */
  364.   : "r" (a6), "r" (d1)
  365.   : "a0","a1","d0","d1", "memory");
  366. }
  367. static __inline LONG 
  368. DeleteFile (BASE_PAR_DECL STRPTR name)
  369. {
  370.   BASE_EXT_DECL
  371.   register LONG  _res  __asm("d0");
  372.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  373.   register STRPTR d1 __asm("d1") = name;
  374.   __asm __volatile ("jsr a6@(-0x48)"
  375.   : "=r" (_res)
  376.   : "r" (a6), "r" (d1)
  377.   : "a0","a1","d0","d1", "memory");
  378.   return _res;
  379. }
  380. static __inline LONG 
  381. DeleteVar (BASE_PAR_DECL STRPTR name,unsigned long flags)
  382. {
  383.   BASE_EXT_DECL
  384.   register LONG  _res  __asm("d0");
  385.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  386.   register STRPTR d1 __asm("d1") = name;
  387.   register unsigned long d2 __asm("d2") = flags;
  388.   __asm __volatile ("jsr a6@(-0x390)"
  389.   : "=r" (_res)
  390.   : "r" (a6), "r" (d1), "r" (d2)
  391.   : "a0","a1","d0","d1","d2", "memory");
  392.   return _res;
  393. }
  394. static __inline struct MsgPort *
  395. DeviceProc (BASE_PAR_DECL STRPTR name)
  396. {
  397.   BASE_EXT_DECL
  398.   register struct MsgPort * _res  __asm("d0");
  399.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  400.   register STRPTR d1 __asm("d1") = name;
  401.   __asm __volatile ("jsr a6@(-0xae)"
  402.   : "=r" (_res)
  403.   : "r" (a6), "r" (d1)
  404.   : "a0","a1","d0","d1", "memory");
  405.   return _res;
  406. }
  407. static __inline LONG 
  408. DoPkt (BASE_PAR_DECL struct MsgPort *port,long action,long arg1,long arg2,long arg3,long arg4,long arg5)
  409. {
  410.   BASE_EXT_DECL
  411.   register LONG  _res  __asm("d0");
  412.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  413.   register struct MsgPort *d1 __asm("d1") = port;
  414.   register long d2 __asm("d2") = action;
  415.   register long d3 __asm("d3") = arg1;
  416.   register long d4 __asm("d4") = arg2;
  417.   register long d5 __asm("d5") = arg3;
  418.   register long d6 __asm("d6") = arg4;
  419.   register long d7 __asm("d7") = arg5;
  420.   __asm __volatile ("jsr a6@(-0xf0)"
  421.   : "=r" (_res)
  422.   : "r" (a6), "r" (d1), "r" (d2), "r" (d3), "r" (d4), "r" (d5), "r" (d6), "r" (d7)
  423.   : "a0","a1","d0","d1","d2","d3","d4","d5","d6","d7", "memory");
  424.   return _res;
  425. }
  426. static __inline BPTR 
  427. DupLock (BASE_PAR_DECL BPTR lock)
  428. {
  429.   BASE_EXT_DECL
  430.   register BPTR  _res  __asm("d0");
  431.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  432.   register BPTR d1 __asm("d1") = lock;
  433.   __asm __volatile ("jsr a6@(-0x60)"
  434.   : "=r" (_res)
  435.   : "r" (a6), "r" (d1)
  436.   : "a0","a1","d0","d1", "memory");
  437.   return _res;
  438. }
  439. static __inline BPTR 
  440. DupLockFromFH (BASE_PAR_DECL BPTR fh)
  441. {
  442.   BASE_EXT_DECL
  443.   register BPTR  _res  __asm("d0");
  444.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  445.   register BPTR d1 __asm("d1") = fh;
  446.   __asm __volatile ("jsr a6@(-0x174)"
  447.   : "=r" (_res)
  448.   : "r" (a6), "r" (d1)
  449.   : "a0","a1","d0","d1", "memory");
  450.   return _res;
  451. }
  452. static __inline void 
  453. EndNotify (BASE_PAR_DECL struct NotifyRequest *notify)
  454. {
  455.   BASE_EXT_DECL
  456.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  457.   register struct NotifyRequest *d1 __asm("d1") = notify;
  458.   __asm __volatile ("jsr a6@(-0x37e)"
  459.   : /* no output */
  460.   : "r" (a6), "r" (d1)
  461.   : "a0","a1","d0","d1", "memory");
  462. }
  463. static __inline LONG 
  464. ErrorReport (BASE_PAR_DECL long code,long type,unsigned long arg1,struct MsgPort *device)
  465. {
  466.   BASE_EXT_DECL
  467.   register LONG  _res  __asm("d0");
  468.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  469.   register long d1 __asm("d1") = code;
  470.   register long d2 __asm("d2") = type;
  471.   register unsigned long d3 __asm("d3") = arg1;
  472.   register struct MsgPort *d4 __asm("d4") = device;
  473.   __asm __volatile ("jsr a6@(-0x1e0)"
  474.   : "=r" (_res)
  475.   : "r" (a6), "r" (d1), "r" (d2), "r" (d3), "r" (d4)
  476.   : "a0","a1","d0","d1","d2","d3","d4", "memory");
  477.   return _res;
  478. }
  479. static __inline LONG 
  480. ExAll (BASE_PAR_DECL BPTR lock,struct ExAllData *buffer,long size,long data,struct ExAllControl *control)
  481. {
  482.   BASE_EXT_DECL
  483.   register LONG  _res  __asm("d0");
  484.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  485.   register BPTR d1 __asm("d1") = lock;
  486.   register struct ExAllData *d2 __asm("d2") = buffer;
  487.   register long d3 __asm("d3") = size;
  488.   register long d4 __asm("d4") = data;
  489.   register struct ExAllControl *d5 __asm("d5") = control;
  490.   __asm __volatile ("jsr a6@(-0x1b0)"
  491.   : "=r" (_res)
  492.   : "r" (a6), "r" (d1), "r" (d2), "r" (d3), "r" (d4), "r" (d5)
  493.   : "a0","a1","d0","d1","d2","d3","d4","d5", "memory");
  494.   return _res;
  495. }
  496. static __inline void 
  497. ExAllEnd (BASE_PAR_DECL BPTR lock,struct ExAllData *buffer,long size,long data,struct ExAllControl *control)
  498. {
  499.   BASE_EXT_DECL
  500.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  501.   register BPTR d1 __asm("d1") = lock;
  502.   register struct ExAllData *d2 __asm("d2") = buffer;
  503.   register long d3 __asm("d3") = size;
  504.   register long d4 __asm("d4") = data;
  505.   register struct ExAllControl *d5 __asm("d5") = control;
  506.   __asm __volatile ("jsr a6@(-0x3de)"
  507.   : /* no output */
  508.   : "r" (a6), "r" (d1), "r" (d2), "r" (d3), "r" (d4), "r" (d5)
  509.   : "a0","a1","d0","d1","d2","d3","d4","d5", "memory");
  510. }
  511. static __inline LONG 
  512. ExNext (BASE_PAR_DECL BPTR lock,struct FileInfoBlock *fileInfoBlock)
  513. {
  514.   BASE_EXT_DECL
  515.   register LONG  _res  __asm("d0");
  516.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  517.   register BPTR d1 __asm("d1") = lock;
  518.   register struct FileInfoBlock *d2 __asm("d2") = fileInfoBlock;
  519.   __asm __volatile ("jsr a6@(-0x6c)"
  520.   : "=r" (_res)
  521.   : "r" (a6), "r" (d1), "r" (d2)
  522.   : "a0","a1","d0","d1","d2", "memory");
  523.   return _res;
  524. }
  525. static __inline LONG 
  526. Examine (BASE_PAR_DECL BPTR lock,struct FileInfoBlock *fileInfoBlock)
  527. {
  528.   BASE_EXT_DECL
  529.   register LONG  _res  __asm("d0");
  530.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  531.   register BPTR d1 __asm("d1") = lock;
  532.   register struct FileInfoBlock *d2 __asm("d2") = fileInfoBlock;
  533.   __asm __volatile ("jsr a6@(-0x66)"
  534.   : "=r" (_res)
  535.   : "r" (a6), "r" (d1), "r" (d2)
  536.   : "a0","a1","d0","d1","d2", "memory");
  537.   return _res;
  538. }
  539. static __inline BOOL 
  540. ExamineFH (BASE_PAR_DECL BPTR fh,struct FileInfoBlock *fib)
  541. {
  542.   BASE_EXT_DECL
  543.   register BOOL  _res  __asm("d0");
  544.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  545.   register BPTR d1 __asm("d1") = fh;
  546.   register struct FileInfoBlock *d2 __asm("d2") = fib;
  547.   __asm __volatile ("jsr a6@(-0x186)"
  548.   : "=r" (_res)
  549.   : "r" (a6), "r" (d1), "r" (d2)
  550.   : "a0","a1","d0","d1","d2", "memory");
  551.   return _res;
  552. }
  553. static __inline LONG 
  554. Execute (BASE_PAR_DECL STRPTR string,BPTR file,BPTR file2)
  555. {
  556.   BASE_EXT_DECL
  557.   register LONG  _res  __asm("d0");
  558.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  559.   register STRPTR d1 __asm("d1") = string;
  560.   register BPTR d2 __asm("d2") = file;
  561.   register BPTR d3 __asm("d3") = file2;
  562.   __asm __volatile ("jsr a6@(-0xde)"
  563.   : "=r" (_res)
  564.   : "r" (a6), "r" (d1), "r" (d2), "r" (d3)
  565.   : "a0","a1","d0","d1","d2","d3", "memory");
  566.   return _res;
  567. }
  568. static __inline void 
  569. Exit (BASE_PAR_DECL long returnCode)
  570. {
  571.   BASE_EXT_DECL
  572.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  573.   register long d1 __asm("d1") = returnCode;
  574.   __asm __volatile ("jsr a6@(-0x90)"
  575.   : /* no output */
  576.   : "r" (a6), "r" (d1)
  577.   : "a0","a1","d0","d1", "memory");
  578. }
  579. static __inline LONG 
  580. FGetC (BASE_PAR_DECL BPTR fh)
  581. {
  582.   BASE_EXT_DECL
  583.   register LONG  _res  __asm("d0");
  584.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  585.   register BPTR d1 __asm("d1") = fh;
  586.   __asm __volatile ("jsr a6@(-0x132)"
  587.   : "=r" (_res)
  588.   : "r" (a6), "r" (d1)
  589.   : "a0","a1","d0","d1", "memory");
  590.   return _res;
  591. }
  592. static __inline STRPTR 
  593. FGets (BASE_PAR_DECL BPTR fh,STRPTR buf,unsigned long buflen)
  594. {
  595.   BASE_EXT_DECL
  596.   register STRPTR  _res  __asm("d0");
  597.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  598.   register BPTR d1 __asm("d1") = fh;
  599.   register STRPTR d2 __asm("d2") = buf;
  600.   register unsigned long d3 __asm("d3") = buflen;
  601.   __asm __volatile ("jsr a6@(-0x150)"
  602.   : "=r" (_res)
  603.   : "r" (a6), "r" (d1), "r" (d2), "r" (d3)
  604.   : "a0","a1","d0","d1","d2","d3", "memory");
  605.   return _res;
  606. }
  607. static __inline LONG 
  608. FPutC (BASE_PAR_DECL BPTR fh,long ch)
  609. {
  610.   BASE_EXT_DECL
  611.   register LONG  _res  __asm("d0");
  612.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  613.   register BPTR d1 __asm("d1") = fh;
  614.   register long d2 __asm("d2") = ch;
  615.   __asm __volatile ("jsr a6@(-0x138)"
  616.   : "=r" (_res)
  617.   : "r" (a6), "r" (d1), "r" (d2)
  618.   : "a0","a1","d0","d1","d2", "memory");
  619.   return _res;
  620. }
  621. static __inline LONG 
  622. FPuts (BASE_PAR_DECL BPTR fh,STRPTR str)
  623. {
  624.   BASE_EXT_DECL
  625.   register LONG  _res  __asm("d0");
  626.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  627.   register BPTR d1 __asm("d1") = fh;
  628.   register STRPTR d2 __asm("d2") = str;
  629.   __asm __volatile ("jsr a6@(-0x156)"
  630.   : "=r" (_res)
  631.   : "r" (a6), "r" (d1), "r" (d2)
  632.   : "a0","a1","d0","d1","d2", "memory");
  633.   return _res;
  634. }
  635. static __inline LONG 
  636. FRead (BASE_PAR_DECL BPTR fh,APTR block,unsigned long blocklen,unsigned long number)
  637. {
  638.   BASE_EXT_DECL
  639.   register LONG  _res  __asm("d0");
  640.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  641.   register BPTR d1 __asm("d1") = fh;
  642.   register APTR d2 __asm("d2") = block;
  643.   register unsigned long d3 __asm("d3") = blocklen;
  644.   register unsigned long d4 __asm("d4") = number;
  645.   __asm __volatile ("jsr a6@(-0x144)"
  646.   : "=r" (_res)
  647.   : "r" (a6), "r" (d1), "r" (d2), "r" (d3), "r" (d4)
  648.   : "a0","a1","d0","d1","d2","d3","d4", "memory");
  649.   return _res;
  650. }
  651. static __inline LONG 
  652. FWrite (BASE_PAR_DECL BPTR fh,APTR block,unsigned long blocklen,unsigned long number)
  653. {
  654.   BASE_EXT_DECL
  655.   register LONG  _res  __asm("d0");
  656.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  657.   register BPTR d1 __asm("d1") = fh;
  658.   register APTR d2 __asm("d2") = block;
  659.   register unsigned long d3 __asm("d3") = blocklen;
  660.   register unsigned long d4 __asm("d4") = number;
  661.   __asm __volatile ("jsr a6@(-0x14a)"
  662.   : "=r" (_res)
  663.   : "r" (a6), "r" (d1), "r" (d2), "r" (d3), "r" (d4)
  664.   : "a0","a1","d0","d1","d2","d3","d4", "memory");
  665.   return _res;
  666. }
  667. static __inline BOOL 
  668. Fault (BASE_PAR_DECL long code,STRPTR header,STRPTR buffer,long len)
  669. {
  670.   BASE_EXT_DECL
  671.   register BOOL  _res  __asm("d0");
  672.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  673.   register long d1 __asm("d1") = code;
  674.   register STRPTR d2 __asm("d2") = header;
  675.   register STRPTR d3 __asm("d3") = buffer;
  676.   register long d4 __asm("d4") = len;
  677.   __asm __volatile ("jsr a6@(-0x1d4)"
  678.   : "=r" (_res)
  679.   : "r" (a6), "r" (d1), "r" (d2), "r" (d3), "r" (d4)
  680.   : "a0","a1","d0","d1","d2","d3","d4", "memory");
  681.   return _res;
  682. }
  683. static __inline STRPTR 
  684. FilePart (BASE_PAR_DECL STRPTR path)
  685. {
  686.   BASE_EXT_DECL
  687.   register STRPTR  _res  __asm("d0");
  688.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  689.   register STRPTR d1 __asm("d1") = path;
  690.   __asm __volatile ("jsr a6@(-0x366)"
  691.   : "=r" (_res)
  692.   : "r" (a6), "r" (d1)
  693.   : "a0","a1","d0","d1", "memory");
  694.   return _res;
  695. }
  696. static __inline LONG 
  697. FindArg (BASE_PAR_DECL STRPTR keyword,STRPTR _template)
  698. {
  699.   BASE_EXT_DECL
  700.   register LONG  _res  __asm("d0");
  701.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  702.   register STRPTR d1 __asm("d1") = keyword;
  703.   register STRPTR d2 __asm("d2") = _template;
  704.   __asm __volatile ("jsr a6@(-0x324)"
  705.   : "=r" (_res)
  706.   : "r" (a6), "r" (d1), "r" (d2)
  707.   : "a0","a1","d0","d1","d2", "memory");
  708.   return _res;
  709. }
  710. static __inline struct Process *
  711. FindCliProc (BASE_PAR_DECL unsigned long num)
  712. {
  713.   BASE_EXT_DECL
  714.   register struct Process * _res  __asm("d0");
  715.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  716.   register unsigned long d1 __asm("d1") = num;
  717.   __asm __volatile ("jsr a6@(-0x222)"
  718.   : "=r" (_res)
  719.   : "r" (a6), "r" (d1)
  720.   : "a0","a1","d0","d1", "memory");
  721.   return _res;
  722. }
  723. static __inline struct DosList *
  724. FindDosEntry (BASE_PAR_DECL struct DosList *dlist,STRPTR name,unsigned long flags)
  725. {
  726.   BASE_EXT_DECL
  727.   register struct DosList * _res  __asm("d0");
  728.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  729.   register struct DosList *d1 __asm("d1") = dlist;
  730.   register STRPTR d2 __asm("d2") = name;
  731.   register unsigned long d3 __asm("d3") = flags;
  732.   __asm __volatile ("jsr a6@(-0x2ac)"
  733.   : "=r" (_res)
  734.   : "r" (a6), "r" (d1), "r" (d2), "r" (d3)
  735.   : "a0","a1","d0","d1","d2","d3", "memory");
  736.   return _res;
  737. }
  738. static __inline struct Segment *
  739. FindSegment (BASE_PAR_DECL STRPTR name,struct Segment *seg,long system)
  740. {
  741.   BASE_EXT_DECL
  742.   register struct Segment * _res  __asm("d0");
  743.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  744.   register STRPTR d1 __asm("d1") = name;
  745.   register struct Segment *d2 __asm("d2") = seg;
  746.   register long d3 __asm("d3") = system;
  747.   __asm __volatile ("jsr a6@(-0x30c)"
  748.   : "=r" (_res)
  749.   : "r" (a6), "r" (d1), "r" (d2), "r" (d3)
  750.   : "a0","a1","d0","d1","d2","d3", "memory");
  751.   return _res;
  752. }
  753. static __inline struct LocalVar *
  754. FindVar (BASE_PAR_DECL STRPTR name,unsigned long type)
  755. {
  756.   BASE_EXT_DECL
  757.   register struct LocalVar * _res  __asm("d0");
  758.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  759.   register STRPTR d1 __asm("d1") = name;
  760.   register unsigned long d2 __asm("d2") = type;
  761.   __asm __volatile ("jsr a6@(-0x396)"
  762.   : "=r" (_res)
  763.   : "r" (a6), "r" (d1), "r" (d2)
  764.   : "a0","a1","d0","d1","d2", "memory");
  765.   return _res;
  766. }
  767. static __inline LONG 
  768. Flush (BASE_PAR_DECL BPTR fh)
  769. {
  770.   BASE_EXT_DECL
  771.   register LONG  _res  __asm("d0");
  772.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  773.   register BPTR d1 __asm("d1") = fh;
  774.   __asm __volatile ("jsr a6@(-0x168)"
  775.   : "=r" (_res)
  776.   : "r" (a6), "r" (d1)
  777.   : "a0","a1","d0","d1", "memory");
  778.   return _res;
  779. }
  780. static __inline BOOL 
  781. Format (BASE_PAR_DECL STRPTR filesystem,STRPTR volumename,unsigned long dostype)
  782. {
  783.   BASE_EXT_DECL
  784.   register BOOL  _res  __asm("d0");
  785.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  786.   register STRPTR d1 __asm("d1") = filesystem;
  787.   register STRPTR d2 __asm("d2") = volumename;
  788.   register unsigned long d3 __asm("d3") = dostype;
  789.   __asm __volatile ("jsr a6@(-0x2ca)"
  790.   : "=r" (_res)
  791.   : "r" (a6), "r" (d1), "r" (d2), "r" (d3)
  792.   : "a0","a1","d0","d1","d2","d3", "memory");
  793.   return _res;
  794. }
  795. static __inline void 
  796. FreeArgs (BASE_PAR_DECL struct RDArgs *args)
  797. {
  798.   BASE_EXT_DECL
  799.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  800.   register struct RDArgs *d1 __asm("d1") = args;
  801.   __asm __volatile ("jsr a6@(-0x35a)"
  802.   : /* no output */
  803.   : "r" (a6), "r" (d1)
  804.   : "a0","a1","d0","d1", "memory");
  805. }
  806. static __inline void 
  807. FreeDeviceProc (BASE_PAR_DECL struct DevProc *dp)
  808. {
  809.   BASE_EXT_DECL
  810.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  811.   register struct DevProc *d1 __asm("d1") = dp;
  812.   __asm __volatile ("jsr a6@(-0x288)"
  813.   : /* no output */
  814.   : "r" (a6), "r" (d1)
  815.   : "a0","a1","d0","d1", "memory");
  816. }
  817. static __inline void 
  818. FreeDosEntry (BASE_PAR_DECL struct DosList *dlist)
  819. {
  820.   BASE_EXT_DECL
  821.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  822.   register struct DosList *d1 __asm("d1") = dlist;
  823.   __asm __volatile ("jsr a6@(-0x2be)"
  824.   : /* no output */
  825.   : "r" (a6), "r" (d1)
  826.   : "a0","a1","d0","d1", "memory");
  827. }
  828. static __inline void 
  829. FreeDosObject (BASE_PAR_DECL unsigned long type,APTR ptr)
  830. {
  831.   BASE_EXT_DECL
  832.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  833.   register unsigned long d1 __asm("d1") = type;
  834.   register APTR d2 __asm("d2") = ptr;
  835.   __asm __volatile ("jsr a6@(-0xea)"
  836.   : /* no output */
  837.   : "r" (a6), "r" (d1), "r" (d2)
  838.   : "a0","a1","d0","d1","d2", "memory");
  839. }
  840. static __inline STRPTR 
  841. GetArgStr (BASE_PAR_DECL0)
  842. {
  843.   BASE_EXT_DECL
  844.   register STRPTR  _res  __asm("d0");
  845.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  846.   __asm __volatile ("jsr a6@(-0x216)"
  847.   : "=r" (_res)
  848.   : "r" (a6)
  849.   : "a0","a1","d0","d1", "memory");
  850.   return _res;
  851. }
  852. static __inline struct MsgPort *
  853. GetConsoleTask (BASE_PAR_DECL0)
  854. {
  855.   BASE_EXT_DECL
  856.   register struct MsgPort * _res  __asm("d0");
  857.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  858.   __asm __volatile ("jsr a6@(-0x1fe)"
  859.   : "=r" (_res)
  860.   : "r" (a6)
  861.   : "a0","a1","d0","d1", "memory");
  862.   return _res;
  863. }
  864. static __inline BOOL 
  865. GetCurrentDirName (BASE_PAR_DECL STRPTR buf,long len)
  866. {
  867.   BASE_EXT_DECL
  868.   register BOOL  _res  __asm("d0");
  869.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  870.   register STRPTR d1 __asm("d1") = buf;
  871.   register long d2 __asm("d2") = len;
  872.   __asm __volatile ("jsr a6@(-0x234)"
  873.   : "=r" (_res)
  874.   : "r" (a6), "r" (d1), "r" (d2)
  875.   : "a0","a1","d0","d1","d2", "memory");
  876.   return _res;
  877. }
  878. static __inline struct DevProc *
  879. GetDeviceProc (BASE_PAR_DECL STRPTR name,struct DevProc *dp)
  880. {
  881.   BASE_EXT_DECL
  882.   register struct DevProc * _res  __asm("d0");
  883.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  884.   register STRPTR d1 __asm("d1") = name;
  885.   register struct DevProc *d2 __asm("d2") = dp;
  886.   __asm __volatile ("jsr a6@(-0x282)"
  887.   : "=r" (_res)
  888.   : "r" (a6), "r" (d1), "r" (d2)
  889.   : "a0","a1","d0","d1","d2", "memory");
  890.   return _res;
  891. }
  892. static __inline struct MsgPort *
  893. GetFileSysTask (BASE_PAR_DECL0)
  894. {
  895.   BASE_EXT_DECL
  896.   register struct MsgPort * _res  __asm("d0");
  897.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  898.   __asm __volatile ("jsr a6@(-0x20a)"
  899.   : "=r" (_res)
  900.   : "r" (a6)
  901.   : "a0","a1","d0","d1", "memory");
  902.   return _res;
  903. }
  904. static __inline BPTR 
  905. GetProgramDir (BASE_PAR_DECL0)
  906. {
  907.   BASE_EXT_DECL
  908.   register BPTR  _res  __asm("d0");
  909.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  910.   __asm __volatile ("jsr a6@(-0x258)"
  911.   : "=r" (_res)
  912.   : "r" (a6)
  913.   : "a0","a1","d0","d1", "memory");
  914.   return _res;
  915. }
  916. static __inline BOOL 
  917. GetProgramName (BASE_PAR_DECL STRPTR buf,long len)
  918. {
  919.   BASE_EXT_DECL
  920.   register BOOL  _res  __asm("d0");
  921.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  922.   register STRPTR d1 __asm("d1") = buf;
  923.   register long d2 __asm("d2") = len;
  924.   __asm __volatile ("jsr a6@(-0x240)"
  925.   : "=r" (_res)
  926.   : "r" (a6), "r" (d1), "r" (d2)
  927.   : "a0","a1","d0","d1","d2", "memory");
  928.   return _res;
  929. }
  930. static __inline BOOL 
  931. GetPrompt (BASE_PAR_DECL STRPTR buf,long len)
  932. {
  933.   BASE_EXT_DECL
  934.   register BOOL  _res  __asm("d0");
  935.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  936.   register STRPTR d1 __asm("d1") = buf;
  937.   register long d2 __asm("d2") = len;
  938.   __asm __volatile ("jsr a6@(-0x24c)"
  939.   : "=r" (_res)
  940.   : "r" (a6), "r" (d1), "r" (d2)
  941.   : "a0","a1","d0","d1","d2", "memory");
  942.   return _res;
  943. }
  944. static __inline LONG 
  945. GetVar (BASE_PAR_DECL STRPTR name,STRPTR buffer,long size,long flags)
  946. {
  947.   BASE_EXT_DECL
  948.   register LONG  _res  __asm("d0");
  949.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  950.   register STRPTR d1 __asm("d1") = name;
  951.   register STRPTR d2 __asm("d2") = buffer;
  952.   register long d3 __asm("d3") = size;
  953.   register long d4 __asm("d4") = flags;
  954.   __asm __volatile ("jsr a6@(-0x38a)"
  955.   : "=r" (_res)
  956.   : "r" (a6), "r" (d1), "r" (d2), "r" (d3), "r" (d4)
  957.   : "a0","a1","d0","d1","d2","d3","d4", "memory");
  958.   return _res;
  959. }
  960. static __inline LONG 
  961. Info (BASE_PAR_DECL BPTR lock,struct InfoData *parameterBlock)
  962. {
  963.   BASE_EXT_DECL
  964.   register LONG  _res  __asm("d0");
  965.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  966.   register BPTR d1 __asm("d1") = lock;
  967.   register struct InfoData *d2 __asm("d2") = parameterBlock;
  968.   __asm __volatile ("jsr a6@(-0x72)"
  969.   : "=r" (_res)
  970.   : "r" (a6), "r" (d1), "r" (d2)
  971.   : "a0","a1","d0","d1","d2", "memory");
  972.   return _res;
  973. }
  974. static __inline LONG 
  975. Inhibit (BASE_PAR_DECL STRPTR name,long onoff)
  976. {
  977.   BASE_EXT_DECL
  978.   register LONG  _res  __asm("d0");
  979.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  980.   register STRPTR d1 __asm("d1") = name;
  981.   register long d2 __asm("d2") = onoff;
  982.   __asm __volatile ("jsr a6@(-0x2d6)"
  983.   : "=r" (_res)
  984.   : "r" (a6), "r" (d1), "r" (d2)
  985.   : "a0","a1","d0","d1","d2", "memory");
  986.   return _res;
  987. }
  988. static __inline BPTR 
  989. Input (BASE_PAR_DECL0)
  990. {
  991.   BASE_EXT_DECL
  992.   register BPTR  _res  __asm("d0");
  993.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  994.   __asm __volatile ("jsr a6@(-0x36)"
  995.   : "=r" (_res)
  996.   : "r" (a6)
  997.   : "a0","a1","d0","d1", "memory");
  998.   return _res;
  999. }
  1000. static __inline BPTR 
  1001. InternalLoadSeg (BASE_PAR_DECL BPTR fh,BPTR table,LONG *funcarray,LONG *stack)
  1002. {
  1003.   BASE_EXT_DECL
  1004.   register BPTR  _res  __asm("d0");
  1005.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  1006.   register BPTR d0 __asm("d0") = fh;
  1007.   register BPTR a0 __asm("a0") = table;
  1008.   register LONG *a1 __asm("a1") = funcarray;
  1009.   register LONG *a2 __asm("a2") = stack;
  1010.   __asm __volatile ("jsr a6@(-0x2f4)"
  1011.   : "=r" (_res)
  1012.   : "r" (a6), "r" (d0), "r" (a0), "r" (a1), "r" (a2)
  1013.   : "a0","a1","a2","d0","d1", "memory");
  1014.   return _res;
  1015. }
  1016. static __inline BOOL 
  1017. InternalUnLoadSeg (BASE_PAR_DECL BPTR seglist,void (*freefunc)())
  1018. {
  1019.   BASE_EXT_DECL
  1020.   register BOOL  _res  __asm("d0");
  1021.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  1022.   register BPTR d1 __asm("d1") = seglist;
  1023.   register void (*a1)() __asm("a1") = freefunc;
  1024.   __asm __volatile ("jsr a6@(-0x2fa)"
  1025.   : "=r" (_res)
  1026.   : "r" (a6), "r" (d1), "r" (a1)
  1027.   : "a0","a1","d0","d1", "memory");
  1028.   return _res;
  1029. }
  1030. static __inline LONG 
  1031. IoErr (BASE_PAR_DECL0)
  1032. {
  1033.   BASE_EXT_DECL
  1034.   register LONG  _res  __asm("d0");
  1035.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  1036.   __asm __volatile ("jsr a6@(-0x84)"
  1037.   : "=r" (_res)
  1038.   : "r" (a6)
  1039.   : "a0","a1","d0","d1", "memory");
  1040.   return _res;
  1041. }
  1042. static __inline BOOL 
  1043. IsFileSystem (BASE_PAR_DECL STRPTR name)
  1044. {
  1045.   BASE_EXT_DECL
  1046.   register BOOL  _res  __asm("d0");
  1047.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  1048.   register STRPTR d1 __asm("d1") = name;
  1049.   __asm __volatile ("jsr a6@(-0x2c4)"
  1050.   : "=r" (_res)
  1051.   : "r" (a6), "r" (d1)
  1052.   : "a0","a1","d0","d1", "memory");
  1053.   return _res;
  1054. }
  1055. static __inline LONG 
  1056. IsInteractive (BASE_PAR_DECL BPTR file)
  1057. {
  1058.   BASE_EXT_DECL
  1059.   register LONG  _res  __asm("d0");
  1060.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  1061.   register BPTR d1 __asm("d1") = file;
  1062.   __asm __volatile ("jsr a6@(-0xd8)"
  1063.   : "=r" (_res)
  1064.   : "r" (a6), "r" (d1)
  1065.   : "a0","a1","d0","d1", "memory");
  1066.   return _res;
  1067. }
  1068. static __inline BPTR 
  1069. LoadSeg (BASE_PAR_DECL STRPTR name)
  1070. {
  1071.   BASE_EXT_DECL
  1072.   register BPTR  _res  __asm("d0");
  1073.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  1074.   register STRPTR d1 __asm("d1") = name;
  1075.   __asm __volatile ("jsr a6@(-0x96)"
  1076.   : "=r" (_res)
  1077.   : "r" (a6), "r" (d1)
  1078.   : "a0","a1","d0","d1", "memory");
  1079.   return _res;
  1080. }
  1081. static __inline BPTR 
  1082. Lock (BASE_PAR_DECL STRPTR name,long type)
  1083. {
  1084.   BASE_EXT_DECL
  1085.   register BPTR  _res  __asm("d0");
  1086.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  1087.   register STRPTR d1 __asm("d1") = name;
  1088.   register long d2 __asm("d2") = type;
  1089.   __asm __volatile ("jsr a6@(-0x54)"
  1090.   : "=r" (_res)
  1091.   : "r" (a6), "r" (d1), "r" (d2)
  1092.   : "a0","a1","d0","d1","d2", "memory");
  1093.   return _res;
  1094. }
  1095. static __inline struct DosList *
  1096. LockDosList (BASE_PAR_DECL unsigned long flags)
  1097. {
  1098.   BASE_EXT_DECL
  1099.   register struct DosList * _res  __asm("d0");
  1100.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  1101.   register unsigned long d1 __asm("d1") = flags;
  1102.   __asm __volatile ("jsr a6@(-0x28e)"
  1103.   : "=r" (_res)
  1104.   : "r" (a6), "r" (d1)
  1105.   : "a0","a1","d0","d1", "memory");
  1106.   return _res;
  1107. }
  1108. static __inline BOOL 
  1109. LockRecord (BASE_PAR_DECL BPTR fh,unsigned long offset,unsigned long length,unsigned long mode,unsigned long timeout)
  1110. {
  1111.   BASE_EXT_DECL
  1112.   register BOOL  _res  __asm("d0");
  1113.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  1114.   register BPTR d1 __asm("d1") = fh;
  1115.   register unsigned long d2 __asm("d2") = offset;
  1116.   register unsigned long d3 __asm("d3") = length;
  1117.   register unsigned long d4 __asm("d4") = mode;
  1118.   register unsigned long d5 __asm("d5") = timeout;
  1119.   __asm __volatile ("jsr a6@(-0x10e)"
  1120.   : "=r" (_res)
  1121.   : "r" (a6), "r" (d1), "r" (d2), "r" (d3), "r" (d4), "r" (d5)
  1122.   : "a0","a1","d0","d1","d2","d3","d4","d5", "memory");
  1123.   return _res;
  1124. }
  1125. static __inline BOOL 
  1126. LockRecords (BASE_PAR_DECL struct RecordLock *recArray,unsigned long timeout)
  1127. {
  1128.   BASE_EXT_DECL
  1129.   register BOOL  _res  __asm("d0");
  1130.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  1131.   register struct RecordLock *d1 __asm("d1") = recArray;
  1132.   register unsigned long d2 __asm("d2") = timeout;
  1133.   __asm __volatile ("jsr a6@(-0x114)"
  1134.   : "=r" (_res)
  1135.   : "r" (a6), "r" (d1), "r" (d2)
  1136.   : "a0","a1","d0","d1","d2", "memory");
  1137.   return _res;
  1138. }
  1139. static __inline struct DosList *
  1140. MakeDosEntry (BASE_PAR_DECL STRPTR name,long type)
  1141. {
  1142.   BASE_EXT_DECL
  1143.   register struct DosList * _res  __asm("d0");
  1144.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  1145.   register STRPTR d1 __asm("d1") = name;
  1146.   register long d2 __asm("d2") = type;
  1147.   __asm __volatile ("jsr a6@(-0x2b8)"
  1148.   : "=r" (_res)
  1149.   : "r" (a6), "r" (d1), "r" (d2)
  1150.   : "a0","a1","d0","d1","d2", "memory");
  1151.   return _res;
  1152. }
  1153. static __inline LONG 
  1154. MakeLink (BASE_PAR_DECL STRPTR name,long dest,long soft)
  1155. {
  1156.   BASE_EXT_DECL
  1157.   register LONG  _res  __asm("d0");
  1158.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  1159.   register STRPTR d1 __asm("d1") = name;
  1160.   register long d2 __asm("d2") = dest;
  1161.   register long d3 __asm("d3") = soft;
  1162.   __asm __volatile ("jsr a6@(-0x1bc)"
  1163.   : "=r" (_res)
  1164.   : "r" (a6), "r" (d1), "r" (d2), "r" (d3)
  1165.   : "a0","a1","d0","d1","d2","d3", "memory");
  1166.   return _res;
  1167. }
  1168. static __inline void 
  1169. MatchEnd (BASE_PAR_DECL struct AnchorPath *anchor)
  1170. {
  1171.   BASE_EXT_DECL
  1172.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  1173.   register struct AnchorPath *d1 __asm("d1") = anchor;
  1174.   __asm __volatile ("jsr a6@(-0x342)"
  1175.   : /* no output */
  1176.   : "r" (a6), "r" (d1)
  1177.   : "a0","a1","d0","d1", "memory");
  1178. }
  1179. static __inline LONG 
  1180. MatchFirst (BASE_PAR_DECL STRPTR pat,struct AnchorPath *anchor)
  1181. {
  1182.   BASE_EXT_DECL
  1183.   register LONG  _res  __asm("d0");
  1184.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  1185.   register STRPTR d1 __asm("d1") = pat;
  1186.   register struct AnchorPath *d2 __asm("d2") = anchor;
  1187.   __asm __volatile ("jsr a6@(-0x336)"
  1188.   : "=r" (_res)
  1189.   : "r" (a6), "r" (d1), "r" (d2)
  1190.   : "a0","a1","d0","d1","d2", "memory");
  1191.   return _res;
  1192. }
  1193. static __inline LONG 
  1194. MatchNext (BASE_PAR_DECL struct AnchorPath *anchor)
  1195. {
  1196.   BASE_EXT_DECL
  1197.   register LONG  _res  __asm("d0");
  1198.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  1199.   register struct AnchorPath *d1 __asm("d1") = anchor;
  1200.   __asm __volatile ("jsr a6@(-0x33c)"
  1201.   : "=r" (_res)
  1202.   : "r" (a6), "r" (d1)
  1203.   : "a0","a1","d0","d1", "memory");
  1204.   return _res;
  1205. }
  1206. static __inline BOOL 
  1207. MatchPattern (BASE_PAR_DECL STRPTR pat,STRPTR str)
  1208. {
  1209.   BASE_EXT_DECL
  1210.   register BOOL  _res  __asm("d0");
  1211.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  1212.   register STRPTR d1 __asm("d1") = pat;
  1213.   register STRPTR d2 __asm("d2") = str;
  1214.   __asm __volatile ("jsr a6@(-0x34e)"
  1215.   : "=r" (_res)
  1216.   : "r" (a6), "r" (d1), "r" (d2)
  1217.   : "a0","a1","d0","d1","d2", "memory");
  1218.   return _res;
  1219. }
  1220. static __inline BOOL 
  1221. MatchPatternNoCase (BASE_PAR_DECL STRPTR pat,STRPTR str)
  1222. {
  1223.   BASE_EXT_DECL
  1224.   register BOOL  _res  __asm("d0");
  1225.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  1226.   register STRPTR d1 __asm("d1") = pat;
  1227.   register STRPTR d2 __asm("d2") = str;
  1228.   __asm __volatile ("jsr a6@(-0x3cc)"
  1229.   : "=r" (_res)
  1230.   : "r" (a6), "r" (d1), "r" (d2)
  1231.   : "a0","a1","d0","d1","d2", "memory");
  1232.   return _res;
  1233. }
  1234. static __inline ULONG 
  1235. MaxCli (BASE_PAR_DECL0)
  1236. {
  1237.   BASE_EXT_DECL
  1238.   register ULONG  _res  __asm("d0");
  1239.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  1240.   __asm __volatile ("jsr a6@(-0x228)"
  1241.   : "=r" (_res)
  1242.   : "r" (a6)
  1243.   : "a0","a1","d0","d1", "memory");
  1244.   return _res;
  1245. }
  1246. static __inline LONG 
  1247. NameFromFH (BASE_PAR_DECL BPTR fh,STRPTR buffer,long len)
  1248. {
  1249.   BASE_EXT_DECL
  1250.   register LONG  _res  __asm("d0");
  1251.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  1252.   register BPTR d1 __asm("d1") = fh;
  1253.   register STRPTR d2 __asm("d2") = buffer;
  1254.   register long d3 __asm("d3") = len;
  1255.   __asm __volatile ("jsr a6@(-0x198)"
  1256.   : "=r" (_res)
  1257.   : "r" (a6), "r" (d1), "r" (d2), "r" (d3)
  1258.   : "a0","a1","d0","d1","d2","d3", "memory");
  1259.   return _res;
  1260. }
  1261. static __inline LONG 
  1262. NameFromLock (BASE_PAR_DECL BPTR lock,STRPTR buffer,long len)
  1263. {
  1264.   BASE_EXT_DECL
  1265.   register LONG  _res  __asm("d0");
  1266.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  1267.   register BPTR d1 __asm("d1") = lock;
  1268.   register STRPTR d2 __asm("d2") = buffer;
  1269.   register long d3 __asm("d3") = len;
  1270.   __asm __volatile ("jsr a6@(-0x192)"
  1271.   : "=r" (_res)
  1272.   : "r" (a6), "r" (d1), "r" (d2), "r" (d3)
  1273.   : "a0","a1","d0","d1","d2","d3", "memory");
  1274.   return _res;
  1275. }
  1276. static __inline BPTR 
  1277. NewLoadSeg (BASE_PAR_DECL STRPTR file,struct TagItem *tags)
  1278. {
  1279.   BASE_EXT_DECL
  1280.   register BPTR  _res  __asm("d0");
  1281.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  1282.   register STRPTR d1 __asm("d1") = file;
  1283.   register struct TagItem *d2 __asm("d2") = tags;
  1284.   __asm __volatile ("jsr a6@(-0x300)"
  1285.   : "=r" (_res)
  1286.   : "r" (a6), "r" (d1), "r" (d2)
  1287.   : "a0","a1","d0","d1","d2", "memory");
  1288.   return _res;
  1289. }
  1290. #ifndef NO_INLINE_STDARG
  1291. #define NewLoadSegTags(a0, tags...) \
  1292.   ({ struct TagItem _tags[] = { tags }; NewLoadSeg ((a0), _tags); })
  1293. #endif /* not NO_INLINE_STDARG */
  1294. #define NewLoadSegTagList(a0, a1) NewLoadSeg ((a0), (a1))
  1295. static __inline struct DosList *
  1296. NextDosEntry (BASE_PAR_DECL struct DosList *dlist,unsigned long flags)
  1297. {
  1298.   BASE_EXT_DECL
  1299.   register struct DosList * _res  __asm("d0");
  1300.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  1301.   register struct DosList *d1 __asm("d1") = dlist;
  1302.   register unsigned long d2 __asm("d2") = flags;
  1303.   __asm __volatile ("jsr a6@(-0x2b2)"
  1304.   : "=r" (_res)
  1305.   : "r" (a6), "r" (d1), "r" (d2)
  1306.   : "a0","a1","d0","d1","d2", "memory");
  1307.   return _res;
  1308. }
  1309. static __inline BPTR 
  1310. Open (BASE_PAR_DECL STRPTR name,long accessMode)
  1311. {
  1312.   BASE_EXT_DECL
  1313.   register BPTR  _res  __asm("d0");
  1314.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  1315.   register STRPTR d1 __asm("d1") = name;
  1316.   register long d2 __asm("d2") = accessMode;
  1317.   __asm __volatile ("jsr a6@(-0x1e)"
  1318.   : "=r" (_res)
  1319.   : "r" (a6), "r" (d1), "r" (d2)
  1320.   : "a0","a1","d0","d1","d2", "memory");
  1321.   return _res;
  1322. }
  1323. static __inline BPTR 
  1324. OpenFromLock (BASE_PAR_DECL BPTR lock)
  1325. {
  1326.   BASE_EXT_DECL
  1327.   register BPTR  _res  __asm("d0");
  1328.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  1329.   register BPTR d1 __asm("d1") = lock;
  1330.   __asm __volatile ("jsr a6@(-0x17a)"
  1331.   : "=r" (_res)
  1332.   : "r" (a6), "r" (d1)
  1333.   : "a0","a1","d0","d1", "memory");
  1334.   return _res;
  1335. }
  1336. static __inline BPTR 
  1337. Output (BASE_PAR_DECL0)
  1338. {
  1339.   BASE_EXT_DECL
  1340.   register BPTR  _res  __asm("d0");
  1341.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  1342.   __asm __volatile ("jsr a6@(-0x3c)"
  1343.   : "=r" (_res)
  1344.   : "r" (a6)
  1345.   : "a0","a1","d0","d1", "memory");
  1346.   return _res;
  1347. }
  1348. static __inline BPTR 
  1349. ParentDir (BASE_PAR_DECL BPTR lock)
  1350. {
  1351.   BASE_EXT_DECL
  1352.   register BPTR  _res  __asm("d0");
  1353.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  1354.   register BPTR d1 __asm("d1") = lock;
  1355.   __asm __volatile ("jsr a6@(-0xd2)"
  1356.   : "=r" (_res)
  1357.   : "r" (a6), "r" (d1)
  1358.   : "a0","a1","d0","d1", "memory");
  1359.   return _res;
  1360. }
  1361. static __inline BPTR 
  1362. ParentOfFH (BASE_PAR_DECL BPTR fh)
  1363. {
  1364.   BASE_EXT_DECL
  1365.   register BPTR  _res  __asm("d0");
  1366.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  1367.   register BPTR d1 __asm("d1") = fh;
  1368.   __asm __volatile ("jsr a6@(-0x180)"
  1369.   : "=r" (_res)
  1370.   : "r" (a6), "r" (d1)
  1371.   : "a0","a1","d0","d1", "memory");
  1372.   return _res;
  1373. }
  1374. static __inline LONG 
  1375. ParsePattern (BASE_PAR_DECL STRPTR pat,STRPTR buf,long buflen)
  1376. {
  1377.   BASE_EXT_DECL
  1378.   register LONG  _res  __asm("d0");
  1379.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  1380.   register STRPTR d1 __asm("d1") = pat;
  1381.   register STRPTR d2 __asm("d2") = buf;
  1382.   register long d3 __asm("d3") = buflen;
  1383.   __asm __volatile ("jsr a6@(-0x348)"
  1384.   : "=r" (_res)
  1385.   : "r" (a6), "r" (d1), "r" (d2), "r" (d3)
  1386.   : "a0","a1","d0","d1","d2","d3", "memory");
  1387.   return _res;
  1388. }
  1389. static __inline LONG 
  1390. ParsePatternNoCase (BASE_PAR_DECL STRPTR pat,STRPTR buf,long buflen)
  1391. {
  1392.   BASE_EXT_DECL
  1393.   register LONG  _res  __asm("d0");
  1394.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  1395.   register STRPTR d1 __asm("d1") = pat;
  1396.   register STRPTR d2 __asm("d2") = buf;
  1397.   register long d3 __asm("d3") = buflen;
  1398.   __asm __volatile ("jsr a6@(-0x3c6)"
  1399.   : "=r" (_res)
  1400.   : "r" (a6), "r" (d1), "r" (d2), "r" (d3)
  1401.   : "a0","a1","d0","d1","d2","d3", "memory");
  1402.   return _res;
  1403. }
  1404. static __inline STRPTR 
  1405. PathPart (BASE_PAR_DECL STRPTR path)
  1406. {
  1407.   BASE_EXT_DECL
  1408.   register STRPTR  _res  __asm("d0");
  1409.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  1410.   register STRPTR d1 __asm("d1") = path;
  1411.   __asm __volatile ("jsr a6@(-0x36c)"
  1412.   : "=r" (_res)
  1413.   : "r" (a6), "r" (d1)
  1414.   : "a0","a1","d0","d1", "memory");
  1415.   return _res;
  1416. }
  1417. static __inline BOOL 
  1418. PrintFault (BASE_PAR_DECL long code,STRPTR header)
  1419. {
  1420.   BASE_EXT_DECL
  1421.   register BOOL  _res  __asm("d0");
  1422.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  1423.   register long d1 __asm("d1") = code;
  1424.   register STRPTR d2 __asm("d2") = header;
  1425.   __asm __volatile ("jsr a6@(-0x1da)"
  1426.   : "=r" (_res)
  1427.   : "r" (a6), "r" (d1), "r" (d2)
  1428.   : "a0","a1","d0","d1","d2", "memory");
  1429.   return _res;
  1430. }
  1431. static __inline LONG 
  1432. PutStr (BASE_PAR_DECL STRPTR str)
  1433. {
  1434.   BASE_EXT_DECL
  1435.   register LONG  _res  __asm("d0");
  1436.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  1437.   register STRPTR d1 __asm("d1") = str;
  1438.   __asm __volatile ("jsr a6@(-0x3b4)"
  1439.   : "=r" (_res)
  1440.   : "r" (a6), "r" (d1)
  1441.   : "a0","a1","d0","d1", "memory");
  1442.   return _res;
  1443. }
  1444. static __inline LONG 
  1445. Read (BASE_PAR_DECL BPTR file,APTR buffer,long length)
  1446. {
  1447.   BASE_EXT_DECL
  1448.   register LONG  _res  __asm("d0");
  1449.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  1450.   register BPTR d1 __asm("d1") = file;
  1451.   register APTR d2 __asm("d2") = buffer;
  1452.   register long d3 __asm("d3") = length;
  1453.   __asm __volatile ("jsr a6@(-0x2a)"
  1454.   : "=r" (_res)
  1455.   : "r" (a6), "r" (d1), "r" (d2), "r" (d3)
  1456.   : "a0","a1","d0","d1","d2","d3", "memory");
  1457.   return _res;
  1458. }
  1459. static __inline struct RDArgs *
  1460. ReadArgs (BASE_PAR_DECL STRPTR _template,LONG *array,struct RDArgs *args)
  1461. {
  1462.   BASE_EXT_DECL
  1463.   register struct RDArgs * _res  __asm("d0");
  1464.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  1465.   register STRPTR d1 __asm("d1") = _template;
  1466.   register LONG *d2 __asm("d2") = array;
  1467.   register struct RDArgs *d3 __asm("d3") = args;
  1468.   __asm __volatile ("jsr a6@(-0x31e)"
  1469.   : "=r" (_res)
  1470.   : "r" (a6), "r" (d1), "r" (d2), "r" (d3)
  1471.   : "a0","a1","d0","d1","d2","d3", "memory");
  1472.   return _res;
  1473. }
  1474. static __inline LONG 
  1475. ReadItem (BASE_PAR_DECL STRPTR name,long maxchars,struct CSource *cSource)
  1476. {
  1477.   BASE_EXT_DECL
  1478.   register LONG  _res  __asm("d0");
  1479.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  1480.   register STRPTR d1 __asm("d1") = name;
  1481.   register long d2 __asm("d2") = maxchars;
  1482.   register struct CSource *d3 __asm("d3") = cSource;
  1483.   __asm __volatile ("jsr a6@(-0x32a)"
  1484.   : "=r" (_res)
  1485.   : "r" (a6), "r" (d1), "r" (d2), "r" (d3)
  1486.   : "a0","a1","d0","d1","d2","d3", "memory");
  1487.   return _res;
  1488. }
  1489. static __inline LONG 
  1490. ReadLink (BASE_PAR_DECL struct MsgPort *port,BPTR lock,STRPTR path,STRPTR buffer,unsigned long size)
  1491. {
  1492.   BASE_EXT_DECL
  1493.   register LONG  _res  __asm("d0");
  1494.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  1495.   register struct MsgPort *d1 __asm("d1") = port;
  1496.   register BPTR d2 __asm("d2") = lock;
  1497.   register STRPTR d3 __asm("d3") = path;
  1498.   register STRPTR d4 __asm("d4") = buffer;
  1499.   register unsigned long d5 __asm("d5") = size;
  1500.   __asm __volatile ("jsr a6@(-0x1b6)"
  1501.   : "=r" (_res)
  1502.   : "r" (a6), "r" (d1), "r" (d2), "r" (d3), "r" (d4), "r" (d5)
  1503.   : "a0","a1","d0","d1","d2","d3","d4","d5", "memory");
  1504.   return _res;
  1505. }
  1506. static __inline LONG 
  1507. Relabel (BASE_PAR_DECL STRPTR drive,STRPTR newname)
  1508. {
  1509.   BASE_EXT_DECL
  1510.   register LONG  _res  __asm("d0");
  1511.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  1512.   register STRPTR d1 __asm("d1") = drive;
  1513.   register STRPTR d2 __asm("d2") = newname;
  1514.   __asm __volatile ("jsr a6@(-0x2d0)"
  1515.   : "=r" (_res)
  1516.   : "r" (a6), "r" (d1), "r" (d2)
  1517.   : "a0","a1","d0","d1","d2", "memory");
  1518.   return _res;
  1519. }
  1520. static __inline LONG 
  1521. RemAssignList (BASE_PAR_DECL STRPTR name,BPTR lock)
  1522. {
  1523.   BASE_EXT_DECL
  1524.   register LONG  _res  __asm("d0");
  1525.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  1526.   register STRPTR d1 __asm("d1") = name;
  1527.   register BPTR d2 __asm("d2") = lock;
  1528.   __asm __volatile ("jsr a6@(-0x27c)"
  1529.   : "=r" (_res)
  1530.   : "r" (a6), "r" (d1), "r" (d2)
  1531.   : "a0","a1","d0","d1","d2", "memory");
  1532.   return _res;
  1533. }
  1534. static __inline BOOL 
  1535. RemDosEntry (BASE_PAR_DECL struct DosList *dlist)
  1536. {
  1537.   BASE_EXT_DECL
  1538.   register BOOL  _res  __asm("d0");
  1539.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  1540.   register struct DosList *d1 __asm("d1") = dlist;
  1541.   __asm __volatile ("jsr a6@(-0x2a0)"
  1542.   : "=r" (_res)
  1543.   : "r" (a6), "r" (d1)
  1544.   : "a0","a1","d0","d1", "memory");
  1545.   return _res;
  1546. }
  1547. static __inline LONG 
  1548. RemSegment (BASE_PAR_DECL struct Segment *seg)
  1549. {
  1550.   BASE_EXT_DECL
  1551.   register LONG  _res  __asm("d0");
  1552.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  1553.   register struct Segment *d1 __asm("d1") = seg;
  1554.   __asm __volatile ("jsr a6@(-0x312)"
  1555.   : "=r" (_res)
  1556.   : "r" (a6), "r" (d1)
  1557.   : "a0","a1","d0","d1", "memory");
  1558.   return _res;
  1559. }
  1560. static __inline LONG 
  1561. Rename (BASE_PAR_DECL STRPTR oldName,STRPTR newName)
  1562. {
  1563.   BASE_EXT_DECL
  1564.   register LONG  _res  __asm("d0");
  1565.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  1566.   register STRPTR d1 __asm("d1") = oldName;
  1567.   register STRPTR d2 __asm("d2") = newName;
  1568.   __asm __volatile ("jsr a6@(-0x4e)"
  1569.   : "=r" (_res)
  1570.   : "r" (a6), "r" (d1), "r" (d2)
  1571.   : "a0","a1","d0","d1","d2", "memory");
  1572.   return _res;
  1573. }
  1574. static __inline void 
  1575. ReplyPkt (BASE_PAR_DECL struct DosPacket *dp,long res1,long res2)
  1576. {
  1577.   BASE_EXT_DECL
  1578.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  1579.   register struct DosPacket *d1 __asm("d1") = dp;
  1580.   register long d2 __asm("d2") = res1;
  1581.   register long d3 __asm("d3") = res2;
  1582.   __asm __volatile ("jsr a6@(-0x102)"
  1583.   : /* no output */
  1584.   : "r" (a6), "r" (d1), "r" (d2), "r" (d3)
  1585.   : "a0","a1","d0","d1","d2","d3", "memory");
  1586. }
  1587. static __inline LONG 
  1588. RunCommand (BASE_PAR_DECL BPTR seg,long stack,STRPTR paramptr,long paramlen)
  1589. {
  1590.   BASE_EXT_DECL
  1591.   register LONG  _res  __asm("d0");
  1592.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  1593.   register BPTR d1 __asm("d1") = seg;
  1594.   register long d2 __asm("d2") = stack;
  1595.   register STRPTR d3 __asm("d3") = paramptr;
  1596.   register long d4 __asm("d4") = paramlen;
  1597.   __asm __volatile ("jsr a6@(-0x1f8)"
  1598.   : "=r" (_res)
  1599.   : "r" (a6), "r" (d1), "r" (d2), "r" (d3), "r" (d4)
  1600.   : "a0","a1","d0","d1","d2","d3","d4", "memory");
  1601.   return _res;
  1602. }
  1603. static __inline BOOL 
  1604. SameDevice (BASE_PAR_DECL BPTR lock1,BPTR lock2)
  1605. {
  1606.   BASE_EXT_DECL
  1607.   register BOOL  _res  __asm("d0");
  1608.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  1609.   register BPTR d1 __asm("d1") = lock1;
  1610.   register BPTR d2 __asm("d2") = lock2;
  1611.   __asm __volatile ("jsr a6@(-0x3d8)"
  1612.   : "=r" (_res)
  1613.   : "r" (a6), "r" (d1), "r" (d2)
  1614.   : "a0","a1","d0","d1","d2", "memory");
  1615.   return _res;
  1616. }
  1617. static __inline LONG 
  1618. SameLock (BASE_PAR_DECL BPTR lock1,BPTR lock2)
  1619. {
  1620.   BASE_EXT_DECL
  1621.   register LONG  _res  __asm("d0");
  1622.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  1623.   register BPTR d1 __asm("d1") = lock1;
  1624.   register BPTR d2 __asm("d2") = lock2;
  1625.   __asm __volatile ("jsr a6@(-0x1a4)"
  1626.   : "=r" (_res)
  1627.   : "r" (a6), "r" (d1), "r" (d2)
  1628.   : "a0","a1","d0","d1","d2", "memory");
  1629.   return _res;
  1630. }
  1631. static __inline LONG 
  1632. Seek (BASE_PAR_DECL BPTR file,long position,long offset)
  1633. {
  1634.   BASE_EXT_DECL
  1635.   register LONG  _res  __asm("d0");
  1636.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  1637.   register BPTR d1 __asm("d1") = file;
  1638.   register long d2 __asm("d2") = position;
  1639.   register long d3 __asm("d3") = offset;
  1640.   __asm __volatile ("jsr a6@(-0x42)"
  1641.   : "=r" (_res)
  1642.   : "r" (a6), "r" (d1), "r" (d2), "r" (d3)
  1643.   : "a0","a1","d0","d1","d2","d3", "memory");
  1644.   return _res;
  1645. }
  1646. static __inline BPTR 
  1647. SelectInput (BASE_PAR_DECL BPTR fh)
  1648. {
  1649.   BASE_EXT_DECL
  1650.   register BPTR  _res  __asm("d0");
  1651.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  1652.   register BPTR d1 __asm("d1") = fh;
  1653.   __asm __volatile ("jsr a6@(-0x126)"
  1654.   : "=r" (_res)
  1655.   : "r" (a6), "r" (d1)
  1656.   : "a0","a1","d0","d1", "memory");
  1657.   return _res;
  1658. }
  1659. static __inline BPTR 
  1660. SelectOutput (BASE_PAR_DECL BPTR fh)
  1661. {
  1662.   BASE_EXT_DECL
  1663.   register BPTR  _res  __asm("d0");
  1664.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  1665.   register BPTR d1 __asm("d1") = fh;
  1666.   __asm __volatile ("jsr a6@(-0x12c)"
  1667.   : "=r" (_res)
  1668.   : "r" (a6), "r" (d1)
  1669.   : "a0","a1","d0","d1", "memory");
  1670.   return _res;
  1671. }
  1672. static __inline void 
  1673. SendPkt (BASE_PAR_DECL struct DosPacket *dp,struct MsgPort *port,struct MsgPort *replyport)
  1674. {
  1675.   BASE_EXT_DECL
  1676.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  1677.   register struct DosPacket *d1 __asm("d1") = dp;
  1678.   register struct MsgPort *d2 __asm("d2") = port;
  1679.   register struct MsgPort *d3 __asm("d3") = replyport;
  1680.   __asm __volatile ("jsr a6@(-0xf6)"
  1681.   : /* no output */
  1682.   : "r" (a6), "r" (d1), "r" (d2), "r" (d3)
  1683.   : "a0","a1","d0","d1","d2","d3", "memory");
  1684. }
  1685. static __inline BOOL 
  1686. SetArgStr (BASE_PAR_DECL STRPTR string)
  1687. {
  1688.   BASE_EXT_DECL
  1689.   register BOOL  _res  __asm("d0");
  1690.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  1691.   register STRPTR d1 __asm("d1") = string;
  1692.   __asm __volatile ("jsr a6@(-0x21c)"
  1693.   : "=r" (_res)
  1694.   : "r" (a6), "r" (d1)
  1695.   : "a0","a1","d0","d1", "memory");
  1696.   return _res;
  1697. }
  1698. static __inline LONG 
  1699. SetComment (BASE_PAR_DECL STRPTR name,STRPTR comment)
  1700. {
  1701.   BASE_EXT_DECL
  1702.   register LONG  _res  __asm("d0");
  1703.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  1704.   register STRPTR d1 __asm("d1") = name;
  1705.   register STRPTR d2 __asm("d2") = comment;
  1706.   __asm __volatile ("jsr a6@(-0xb4)"
  1707.   : "=r" (_res)
  1708.   : "r" (a6), "r" (d1), "r" (d2)
  1709.   : "a0","a1","d0","d1","d2", "memory");
  1710.   return _res;
  1711. }
  1712. static __inline struct MsgPort *
  1713. SetConsoleTask (BASE_PAR_DECL struct MsgPort *task)
  1714. {
  1715.   BASE_EXT_DECL
  1716.   register struct MsgPort * _res  __asm("d0");
  1717.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  1718.   register struct MsgPort *d1 __asm("d1") = task;
  1719.   __asm __volatile ("jsr a6@(-0x204)"
  1720.   : "=r" (_res)
  1721.   : "r" (a6), "r" (d1)
  1722.   : "a0","a1","d0","d1", "memory");
  1723.   return _res;
  1724. }
  1725. static __inline BOOL 
  1726. SetCurrentDirName (BASE_PAR_DECL STRPTR name)
  1727. {
  1728.   BASE_EXT_DECL
  1729.   register BOOL  _res  __asm("d0");
  1730.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  1731.   register STRPTR d1 __asm("d1") = name;
  1732.   __asm __volatile ("jsr a6@(-0x22e)"
  1733.   : "=r" (_res)
  1734.   : "r" (a6), "r" (d1)
  1735.   : "a0","a1","d0","d1", "memory");
  1736.   return _res;
  1737. }
  1738. static __inline LONG 
  1739. SetFileDate (BASE_PAR_DECL STRPTR name,struct DateStamp *date)
  1740. {
  1741.   BASE_EXT_DECL
  1742.   register LONG  _res  __asm("d0");
  1743.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  1744.   register STRPTR d1 __asm("d1") = name;
  1745.   register struct DateStamp *d2 __asm("d2") = date;
  1746.   __asm __volatile ("jsr a6@(-0x18c)"
  1747.   : "=r" (_res)
  1748.   : "r" (a6), "r" (d1), "r" (d2)
  1749.   : "a0","a1","d0","d1","d2", "memory");
  1750.   return _res;
  1751. }
  1752. static __inline LONG 
  1753. SetFileSize (BASE_PAR_DECL BPTR fh,long pos,long mode)
  1754. {
  1755.   BASE_EXT_DECL
  1756.   register LONG  _res  __asm("d0");
  1757.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  1758.   register BPTR d1 __asm("d1") = fh;
  1759.   register long d2 __asm("d2") = pos;
  1760.   register long d3 __asm("d3") = mode;
  1761.   __asm __volatile ("jsr a6@(-0x1c8)"
  1762.   : "=r" (_res)
  1763.   : "r" (a6), "r" (d1), "r" (d2), "r" (d3)
  1764.   : "a0","a1","d0","d1","d2","d3", "memory");
  1765.   return _res;
  1766. }
  1767. static __inline struct MsgPort *
  1768. SetFileSysTask (BASE_PAR_DECL struct MsgPort *task)
  1769. {
  1770.   BASE_EXT_DECL
  1771.   register struct MsgPort * _res  __asm("d0");
  1772.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  1773.   register struct MsgPort *d1 __asm("d1") = task;
  1774.   __asm __volatile ("jsr a6@(-0x210)"
  1775.   : "=r" (_res)
  1776.   : "r" (a6), "r" (d1)
  1777.   : "a0","a1","d0","d1", "memory");
  1778.   return _res;
  1779. }
  1780. static __inline LONG 
  1781. SetIoErr (BASE_PAR_DECL long result)
  1782. {
  1783.   BASE_EXT_DECL
  1784.   register LONG  _res  __asm("d0");
  1785.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  1786.   register long d1 __asm("d1") = result;
  1787.   __asm __volatile ("jsr a6@(-0x1ce)"
  1788.   : "=r" (_res)
  1789.   : "r" (a6), "r" (d1)
  1790.   : "a0","a1","d0","d1", "memory");
  1791.   return _res;
  1792. }
  1793. static __inline LONG 
  1794. SetMode (BASE_PAR_DECL BPTR fh,long mode)
  1795. {
  1796.   BASE_EXT_DECL
  1797.   register LONG  _res  __asm("d0");
  1798.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  1799.   register BPTR d1 __asm("d1") = fh;
  1800.   register long d2 __asm("d2") = mode;
  1801.   __asm __volatile ("jsr a6@(-0x1aa)"
  1802.   : "=r" (_res)
  1803.   : "r" (a6), "r" (d1), "r" (d2)
  1804.   : "a0","a1","d0","d1","d2", "memory");
  1805.   return _res;
  1806. }
  1807. static __inline BOOL 
  1808. SetOwner (BASE_PAR_DECL STRPTR name,long owner_info)
  1809. {
  1810.   BASE_EXT_DECL
  1811.   register BOOL  _res  __asm("d0");
  1812.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  1813.   register STRPTR d1 __asm("d1") = name;
  1814.   register long d2 __asm("d2") = owner_info;
  1815.   __asm __volatile ("jsr a6@(-0x3e4)"
  1816.   : "=r" (_res)
  1817.   : "r" (a6), "r" (d1), "r" (d2)
  1818.   : "a0","a1","d0","d1","d2", "memory");
  1819.   return _res;
  1820. }
  1821. static __inline BPTR 
  1822. SetProgramDir (BASE_PAR_DECL BPTR lock)
  1823. {
  1824.   BASE_EXT_DECL
  1825.   register BPTR  _res  __asm("d0");
  1826.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  1827.   register BPTR d1 __asm("d1") = lock;
  1828.   __asm __volatile ("jsr a6@(-0x252)"
  1829.   : "=r" (_res)
  1830.   : "r" (a6), "r" (d1)
  1831.   : "a0","a1","d0","d1", "memory");
  1832.   return _res;
  1833. }
  1834. static __inline BOOL 
  1835. SetProgramName (BASE_PAR_DECL STRPTR name)
  1836. {
  1837.   BASE_EXT_DECL
  1838.   register BOOL  _res  __asm("d0");
  1839.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  1840.   register STRPTR d1 __asm("d1") = name;
  1841.   __asm __volatile ("jsr a6@(-0x23a)"
  1842.   : "=r" (_res)
  1843.   : "r" (a6), "r" (d1)
  1844.   : "a0","a1","d0","d1", "memory");
  1845.   return _res;
  1846. }
  1847. static __inline BOOL 
  1848. SetPrompt (BASE_PAR_DECL STRPTR name)
  1849. {
  1850.   BASE_EXT_DECL
  1851.   register BOOL  _res  __asm("d0");
  1852.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  1853.   register STRPTR d1 __asm("d1") = name;
  1854.   __asm __volatile ("jsr a6@(-0x246)"
  1855.   : "=r" (_res)
  1856.   : "r" (a6), "r" (d1)
  1857.   : "a0","a1","d0","d1", "memory");
  1858.   return _res;
  1859. }
  1860. static __inline LONG 
  1861. SetProtection (BASE_PAR_DECL STRPTR name,long protect)
  1862. {
  1863.   BASE_EXT_DECL
  1864.   register LONG  _res  __asm("d0");
  1865.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  1866.   register STRPTR d1 __asm("d1") = name;
  1867.   register long d2 __asm("d2") = protect;
  1868.   __asm __volatile ("jsr a6@(-0xba)"
  1869.   : "=r" (_res)
  1870.   : "r" (a6), "r" (d1), "r" (d2)
  1871.   : "a0","a1","d0","d1","d2", "memory");
  1872.   return _res;
  1873. }
  1874. static __inline LONG 
  1875. SetVBuf (BASE_PAR_DECL BPTR fh,STRPTR buff,long type,long size)
  1876. {
  1877.   BASE_EXT_DECL
  1878.   register LONG  _res  __asm("d0");
  1879.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  1880.   register BPTR d1 __asm("d1") = fh;
  1881.   register STRPTR d2 __asm("d2") = buff;
  1882.   register long d3 __asm("d3") = type;
  1883.   register long d4 __asm("d4") = size;
  1884.   __asm __volatile ("jsr a6@(-0x16e)"
  1885.   : "=r" (_res)
  1886.   : "r" (a6), "r" (d1), "r" (d2), "r" (d3), "r" (d4)
  1887.   : "a0","a1","d0","d1","d2","d3","d4", "memory");
  1888.   return _res;
  1889. }
  1890. static __inline BOOL 
  1891. SetVar (BASE_PAR_DECL STRPTR name,STRPTR buffer,long size,long flags)
  1892. {
  1893.   BASE_EXT_DECL
  1894.   register BOOL  _res  __asm("d0");
  1895.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  1896.   register STRPTR d1 __asm("d1") = name;
  1897.   register STRPTR d2 __asm("d2") = buffer;
  1898.   register long d3 __asm("d3") = size;
  1899.   register long d4 __asm("d4") = flags;
  1900.   __asm __volatile ("jsr a6@(-0x384)"
  1901.   : "=r" (_res)
  1902.   : "r" (a6), "r" (d1), "r" (d2), "r" (d3), "r" (d4)
  1903.   : "a0","a1","d0","d1","d2","d3","d4", "memory");
  1904.   return _res;
  1905. }
  1906. static __inline WORD 
  1907. SplitName (BASE_PAR_DECL STRPTR name,unsigned long seperator,STRPTR buf,long oldpos,long size)
  1908. {
  1909.   BASE_EXT_DECL
  1910.   register WORD  _res  __asm("d0");
  1911.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  1912.   register STRPTR d1 __asm("d1") = name;
  1913.   register unsigned long d2 __asm("d2") = seperator;
  1914.   register STRPTR d3 __asm("d3") = buf;
  1915.   register long d4 __asm("d4") = oldpos;
  1916.   register long d5 __asm("d5") = size;
  1917.   __asm __volatile ("jsr a6@(-0x19e)"
  1918.   : "=r" (_res)
  1919.   : "r" (a6), "r" (d1), "r" (d2), "r" (d3), "r" (d4), "r" (d5)
  1920.   : "a0","a1","d0","d1","d2","d3","d4","d5", "memory");
  1921.   return _res;
  1922. }
  1923. static __inline BOOL 
  1924. StartNotify (BASE_PAR_DECL struct NotifyRequest *notify)
  1925. {
  1926.   BASE_EXT_DECL
  1927.   register BOOL  _res  __asm("d0");
  1928.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  1929.   register struct NotifyRequest *d1 __asm("d1") = notify;
  1930.   __asm __volatile ("jsr a6@(-0x378)"
  1931.   : "=r" (_res)
  1932.   : "r" (a6), "r" (d1)
  1933.   : "a0","a1","d0","d1", "memory");
  1934.   return _res;
  1935. }
  1936. static __inline LONG 
  1937. StrToDate (BASE_PAR_DECL struct DateTime *datetime)
  1938. {
  1939.   BASE_EXT_DECL
  1940.   register LONG  _res  __asm("d0");
  1941.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  1942.   register struct DateTime *d1 __asm("d1") = datetime;
  1943.   __asm __volatile ("jsr a6@(-0x2ee)"
  1944.   : "=r" (_res)
  1945.   : "r" (a6), "r" (d1)
  1946.   : "a0","a1","d0","d1", "memory");
  1947.   return _res;
  1948. }
  1949. static __inline LONG 
  1950. StrToLong (BASE_PAR_DECL STRPTR string,LONG *value)
  1951. {
  1952.   BASE_EXT_DECL
  1953.   register LONG  _res  __asm("d0");
  1954.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  1955.   register STRPTR d1 __asm("d1") = string;
  1956.   register LONG *d2 __asm("d2") = value;
  1957.   __asm __volatile ("jsr a6@(-0x330)"
  1958.   : "=r" (_res)
  1959.   : "r" (a6), "r" (d1), "r" (d2)
  1960.   : "a0","a1","d0","d1","d2", "memory");
  1961.   return _res;
  1962. }
  1963. static __inline LONG 
  1964. SystemTagList (BASE_PAR_DECL STRPTR command,struct TagItem *tags)
  1965. {
  1966.   BASE_EXT_DECL
  1967.   register LONG  _res  __asm("d0");
  1968.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  1969.   register STRPTR d1 __asm("d1") = command;
  1970.   register struct TagItem *d2 __asm("d2") = tags;
  1971.   __asm __volatile ("jsr a6@(-0x25e)"
  1972.   : "=r" (_res)
  1973.   : "r" (a6), "r" (d1), "r" (d2)
  1974.   : "a0","a1","d0","d1","d2", "memory");
  1975.   return _res;
  1976. }
  1977. #ifndef NO_INLINE_STDARG
  1978. #define SystemTags(a0, tags...) \
  1979.   ({ struct TagItem _tags[] = { tags }; SystemTagList ((a0), _tags); })
  1980. #endif /* not NO_INLINE_STDARG */
  1981. #define System(a0, a1) SystemTagList ((a0), (a1))
  1982. static __inline LONG 
  1983. UnGetC (BASE_PAR_DECL BPTR fh,long character)
  1984. {
  1985.   BASE_EXT_DECL
  1986.   register LONG  _res  __asm("d0");
  1987.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  1988.   register BPTR d1 __asm("d1") = fh;
  1989.   register long d2 __asm("d2") = character;
  1990.   __asm __volatile ("jsr a6@(-0x13e)"
  1991.   : "=r" (_res)
  1992.   : "r" (a6), "r" (d1), "r" (d2)
  1993.   : "a0","a1","d0","d1","d2", "memory");
  1994.   return _res;
  1995. }
  1996. static __inline void 
  1997. UnLoadSeg (BASE_PAR_DECL BPTR seglist)
  1998. {
  1999.   BASE_EXT_DECL
  2000.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  2001.   register BPTR d1 __asm("d1") = seglist;
  2002.   __asm __volatile ("jsr a6@(-0x9c)"
  2003.   : /* no output */
  2004.   : "r" (a6), "r" (d1)
  2005.   : "a0","a1","d0","d1", "memory");
  2006. }
  2007. static __inline void 
  2008. UnLock (BASE_PAR_DECL BPTR lock)
  2009. {
  2010.   BASE_EXT_DECL
  2011.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  2012.   register BPTR d1 __asm("d1") = lock;
  2013.   __asm __volatile ("jsr a6@(-0x5a)"
  2014.   : /* no output */
  2015.   : "r" (a6), "r" (d1)
  2016.   : "a0","a1","d0","d1", "memory");
  2017. }
  2018. static __inline void 
  2019. UnLockDosList (BASE_PAR_DECL unsigned long flags)
  2020. {
  2021.   BASE_EXT_DECL
  2022.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  2023.   register unsigned long d1 __asm("d1") = flags;
  2024.   __asm __volatile ("jsr a6@(-0x294)"
  2025.   : /* no output */
  2026.   : "r" (a6), "r" (d1)
  2027.   : "a0","a1","d0","d1", "memory");
  2028. }
  2029. static __inline BOOL 
  2030. UnLockRecord (BASE_PAR_DECL BPTR fh,unsigned long offset,unsigned long length)
  2031. {
  2032.   BASE_EXT_DECL
  2033.   register BOOL  _res  __asm("d0");
  2034.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  2035.   register BPTR d1 __asm("d1") = fh;
  2036.   register unsigned long d2 __asm("d2") = offset;
  2037.   register unsigned long d3 __asm("d3") = length;
  2038.   __asm __volatile ("jsr a6@(-0x11a)"
  2039.   : "=r" (_res)
  2040.   : "r" (a6), "r" (d1), "r" (d2), "r" (d3)
  2041.   : "a0","a1","d0","d1","d2","d3", "memory");
  2042.   return _res;
  2043. }
  2044. static __inline BOOL 
  2045. UnLockRecords (BASE_PAR_DECL struct RecordLock *recArray)
  2046. {
  2047.   BASE_EXT_DECL
  2048.   register BOOL  _res  __asm("d0");
  2049.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  2050.   register struct RecordLock *d1 __asm("d1") = recArray;
  2051.   __asm __volatile ("jsr a6@(-0x120)"
  2052.   : "=r" (_res)
  2053.   : "r" (a6), "r" (d1)
  2054.   : "a0","a1","d0","d1", "memory");
  2055.   return _res;
  2056. }
  2057. static __inline LONG 
  2058. VFPrintf (BASE_PAR_DECL BPTR fh,STRPTR format,LONG *argarray)
  2059. {
  2060.   BASE_EXT_DECL
  2061.   register LONG  _res  __asm("d0");
  2062.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  2063.   register BPTR d1 __asm("d1") = fh;
  2064.   register STRPTR d2 __asm("d2") = format;
  2065.   register LONG *d3 __asm("d3") = argarray;
  2066.   __asm __volatile ("jsr a6@(-0x162)"
  2067.   : "=r" (_res)
  2068.   : "r" (a6), "r" (d1), "r" (d2), "r" (d3)
  2069.   : "a0","a1","d0","d1","d2","d3", "memory");
  2070.   return _res;
  2071. }
  2072. static __inline void 
  2073. VFWritef (BASE_PAR_DECL BPTR fh,STRPTR format,LONG *argarray)
  2074. {
  2075.   BASE_EXT_DECL
  2076.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  2077.   register BPTR d1 __asm("d1") = fh;
  2078.   register STRPTR d2 __asm("d2") = format;
  2079.   register LONG *d3 __asm("d3") = argarray;
  2080.   __asm __volatile ("jsr a6@(-0x15c)"
  2081.   : /* no output */
  2082.   : "r" (a6), "r" (d1), "r" (d2), "r" (d3)
  2083.   : "a0","a1","d0","d1","d2","d3", "memory");
  2084. }
  2085. static __inline LONG 
  2086. VPrintf (BASE_PAR_DECL STRPTR format,LONG *argarray)
  2087. {
  2088.   BASE_EXT_DECL
  2089.   register LONG  _res  __asm("d0");
  2090.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  2091.   register STRPTR d1 __asm("d1") = format;
  2092.   register LONG *d2 __asm("d2") = argarray;
  2093.   __asm __volatile ("jsr a6@(-0x3ba)"
  2094.   : "=r" (_res)
  2095.   : "r" (a6), "r" (d1), "r" (d2)
  2096.   : "a0","a1","d0","d1","d2", "memory");
  2097.   return _res;
  2098. }
  2099. static __inline LONG 
  2100. WaitForChar (BASE_PAR_DECL BPTR file,long timeout)
  2101. {
  2102.   BASE_EXT_DECL
  2103.   register LONG  _res  __asm("d0");
  2104.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  2105.   register BPTR d1 __asm("d1") = file;
  2106.   register long d2 __asm("d2") = timeout;
  2107.   __asm __volatile ("jsr a6@(-0xcc)"
  2108.   : "=r" (_res)
  2109.   : "r" (a6), "r" (d1), "r" (d2)
  2110.   : "a0","a1","d0","d1","d2", "memory");
  2111.   return _res;
  2112. }
  2113. static __inline struct DosPacket *
  2114. WaitPkt (BASE_PAR_DECL0)
  2115. {
  2116.   BASE_EXT_DECL
  2117.   register struct DosPacket * _res  __asm("d0");
  2118.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  2119.   __asm __volatile ("jsr a6@(-0xfc)"
  2120.   : "=r" (_res)
  2121.   : "r" (a6)
  2122.   : "a0","a1","d0","d1", "memory");
  2123.   return _res;
  2124. }
  2125. static __inline LONG 
  2126. Write (BASE_PAR_DECL BPTR file,APTR buffer,long length)
  2127. {
  2128.   BASE_EXT_DECL
  2129.   register LONG  _res  __asm("d0");
  2130.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  2131.   register BPTR d1 __asm("d1") = file;
  2132.   register APTR d2 __asm("d2") = buffer;
  2133.   register long d3 __asm("d3") = length;
  2134.   __asm __volatile ("jsr a6@(-0x30)"
  2135.   : "=r" (_res)
  2136.   : "r" (a6), "r" (d1), "r" (d2), "r" (d3)
  2137.   : "a0","a1","d0","d1","d2","d3", "memory");
  2138.   return _res;
  2139. }
  2140. static __inline LONG 
  2141. WriteChars (BASE_PAR_DECL STRPTR buf,unsigned long buflen)
  2142. {
  2143.   BASE_EXT_DECL
  2144.   register LONG  _res  __asm("d0");
  2145.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  2146.   register STRPTR d1 __asm("d1") = buf;
  2147.   register unsigned long d2 __asm("d2") = buflen;
  2148.   __asm __volatile ("jsr a6@(-0x3ae)"
  2149.   : "=r" (_res)
  2150.   : "r" (a6), "r" (d1), "r" (d2)
  2151.   : "a0","a1","d0","d1","d2", "memory");
  2152.   return _res;
  2153. }
  2154. #undef BASE_EXT_DECL
  2155. #undef BASE_PAR_DECL
  2156. #undef BASE_PAR_DECL0
  2157. #undef BASE_NAME
  2158.  
  2159. __END_DECLS
  2160.  
  2161. #endif /* _INLINE_DOS_H */
  2162.