typedef ULONG Tag; struct TagItem { Tag ti_Tag; ULONG ti_Data; }; /* ---- system tag values ----------------------------- */ #define TAG_DONE (0L) /* terminates array of TagItems. ti_Data unused */ #define TAG_USER (1L<<31) /* differentiates user tags from system tags*/ /* definitions for the System() call */ #define SYS_Dummy TAG_USER + 32 #define SYS_Input TAG_USER + 33 #define SYS_Output TAG_USER + 34 #define SYS_Asynch TAG_USER + 35 /* definitions for the CreateNewProc() call */ /* you MUST specify one of NP_Seglist or NP_Entry. All else is optional. */ #define NP_Dummy TAG_USER + 1000 #define NP_Seglist TAG_USER + 1001 #define NP_FreeSeglist TAG_USER + 1002 #define NP_Entry TAG_USER + 1003 #define NP_Input TAG_USER + 1004 #define NP_Output TAG_USER + 1005 #define NP_CloseInput TAG_USER + 1006 #define NP_CloseOutput TAG_USER + 1007 #define NP_Error TAG_USER + 1008 #define NP_CloseError TAG_USER + 1009 #define NP_CurrentDir TAG_USER + 1010 #define NP_StackSize TAG_USER + 1011 #define NP_Name TAG_USER + 1012 #define NP_Priority TAG_USER + 1013 #define NP_ConsoleTask TAG_USER + 1014 BPTR DupLockFromFH(BPTR fh); BPTR OpenFromLock(BPTR lock, long mode); LONG System(BYTE *command, struct TagItem *tags); #pragma amicall(DOSBase, 0x174, DupLockFromFH(d1)) #pragma amicall(DOSBase, 0x17a, OpenFromLock(d1,d2)) #pragma amicall(DOSBase, 0x25e, System(d1,d2))