#ifndef _INLINE_MUIMASTER_H #define _INLINE_MUIMASTER_H #include #include __BEGIN_DECLS #ifndef BASE_EXT_DECL #define BASE_EXT_DECL /*extern struct Library* MUIMasterBase;*/ #endif #ifndef BASE_PAR_DECL #define BASE_PAR_DECL #define BASE_PAR_DECL0 void #endif #ifndef BASE_NAME #define BASE_NAME MUIMasterBase #endif extern struct Library* MUIMasterBase; __inline APTR MUI_AllocAslRequest( BASE_PAR_DECL unsigned long type, struct TagItem *tagList) { BASE_EXT_DECL register APTR res __asm("d0"); register struct Library* a6 __asm("a6") = BASE_NAME; register unsigned long d0 __asm("d0") = type; register struct TagItem* a0 __asm("a0") = tagList; __asm volatile ("jsr a6@(-0x30)" : "=r" (res) : "r" (a6), "r" (d0), "r" (a0) : "d0","d1", "a0", "a1", "memory" ); return res; } APTR MUI_AllocAslRequestTags(ULONG type, Tag tag1, ...) { return(MUI_AllocAslRequest(type, (struct TagItem *) &tag1)); } __inline BOOL MUI_AslRequest( BASE_PAR_DECL APTR requester, struct TagItem *tagList) { BASE_EXT_DECL register BOOL res __asm("d0"); register struct Library* a6 __asm("a6") = BASE_NAME; register APTR a0 __asm("a0") = requester; register struct TagItem* a1 __asm("a1") = tagList; __asm volatile (" jsr a6@(-0x36)" : "=r" (res) : "r" (a6), "r" (a0), "r" (a1) : "d0", "d1", "a0", "a1" ); return res; } BOOL MUI_AslRequestTags(APTR req, Tag tag1, ...) { return(MUI_AslRequest(req, (struct TagItem *) &tag1)); } __inline struct MUI_CustomClass* MUI_CreateCustomClass( BASE_PAR_DECL struct Library *base, char *supername, struct MUI_CustomClass *supermcc, int datasize, APTR dispatcher) { BASE_EXT_DECL register struct MUI_CustomClass* res __asm("d0"); register struct Library* a6 __asm("a6") = BASE_NAME; register struct Library* a0 __asm("a0") = base; register char* a1 __asm("a1") = supername; register struct MUI_CustomClass* a2 __asm("a2") = supermcc; register int d0 __asm("d0") = datasize; register APTR a3 __asm("a3") = dispatcher; __asm volatile (" jsr a6@(-0x6c)" : "=r" (res) : "r" (a6), "r" (a0), "r" (a1), "r" (a2), "r" (d0), "r" (a3) : "d0", "d1", "a0", "a1", "a2", "a3" ); return res; } __inline BOOL MUI_DeleteCustomClass( BASE_PAR_DECL struct MUI_CustomClass* mcc) { BASE_EXT_DECL register BOOL res __asm("d0"); register struct Library* a6 __asm("a6") = BASE_NAME; register struct MUI_CustomClass* a0 __asm("a0") = mcc; __asm volatile (" jsr a6@(-0x72)" : "=r" (res) : "r" (a6), "r" (a0) : "d0", "d1", "a0", "a1" ); return res; } __inline void MUI_DisposeObject( BASE_PAR_DECL Object *obj) { BASE_EXT_DECL register res __asm("d0"); register struct Library* a6 __asm("a6") = BASE_NAME; register Object* a0 __asm("a0") = obj; __asm volatile (" jsr a6@(-0x24)" : "=r" (res) : "r" (a6), "r" (a0) : "d0", "d1", "a0", "a1" ); } __inline LONG MUI_Error( BASE_PAR_DECL0 ) { BASE_EXT_DECL register LONG res __asm("d0"); register struct Library* a6 __asm("a6") = BASE_NAME; __asm volatile (" jsr a6@(-0x42)" : "=r" (res) : "r" (a6) : "d0", "d1", "a0", "a1" ); return res; } __inline void MUI_FreeAslRequest( BASE_PAR_DECL APTR requester) { BASE_EXT_DECL register res __asm("d0"); register struct Library* a6 __asm("a6") = BASE_NAME; register APTR a0 __asm("a0") = requester; __asm volatile (" jsr a6@(-0x3c)" : "=r" (res) : "r" (a6), "r" (a0) : "d0", "d1", "a0", "a1" ); } __inline void MUI_FreeClass( BASE_PAR_DECL struct IClass *classptr) { BASE_EXT_DECL register res __asm("d0"); register struct Library* a6 __asm("a6") = BASE_NAME; register struct IClass* a0 __asm("a0")=classptr; __asm volatile (" jsr a6@(-0x54)" : "=r" (res) : "r" (a6), "r" (a0) : "d0", "d1", "a0", "a1" ); } __inline struct IClass* MUI_GetClass( BASE_PAR_DECL char *classname) { BASE_EXT_DECL register struct IClass* res __asm("d0"); register struct Library* a6 __asm("a6") = BASE_NAME; register char* a0 __asm("a0")=classname; __asm volatile (" jsr a6@(-0x4e)" : "=r" (res) : "r" (a6), "r" (a0) : "d0", "d1", "a0", "a1" ); return res; } __inline Object* MUI_MakeObjectA( BASE_PAR_DECL LONG type, ULONG *params) { BASE_EXT_DECL register Object* res __asm("d0"); register struct Library* a6 __asm("a6") = BASE_NAME; register LONG d0 __asm("d0")=type; register ULONG* a0 __asm("a0")=params; __asm volatile (" jsr a6@(-0x78)" : "=r" (res) : "r" (a6), "r" (d0), "r" (a0) : "d0", "d1", "a0", "a1" ); return res; } Object *MUI_MakeObject(LONG type, ...) { return(MUI_MakeObjectA(type, (ULONG *)(((ULONG)&type)+4))); } __inline Object* MUI_NewObjectA( BASE_PAR_DECL char *classname, struct TagItem *tags) { BASE_EXT_DECL register Object* res __asm("d0"); register struct Library* a6 __asm("a6") = BASE_NAME; register char* a0 __asm("a0") = classname; register struct TagItem* a1 __asm("a1")=tags; __asm volatile (" jsr a6@(-0x1e)" : "=r" (res) : "r" (a6), "r" (a0), "r" (a1) : "d0", "d1", "a0", "a1" ); return res; } Object* MUI_NewObject(char *class, Tag tag1, ...) { return(MUI_NewObjectA(class, (struct TagItem *) &tag1)); } __inline void MUI_Redraw( BASE_PAR_DECL Object *obj, ULONG flags) { BASE_EXT_DECL register res __asm("d0"); register struct Library* a6 __asm("a6") = BASE_NAME; register Object * a0 __asm("a0")=obj; register ULONG d0 __asm("d0")=flags; __asm volatile (" jsr a6@(-0x66)" : "=r" (res) : "r" (a6), "r" (a0), "r" (d0) : "d0", "d1", "a0", "a1" ); } __inline void MUI_RejectIDCMP( BASE_PAR_DECL Object *obj, ULONG flags) { BASE_EXT_DECL register res __asm("d0"); register struct Library* a6 __asm("a6") = BASE_NAME; register Object* a0 __asm("a0")=obj; register ULONG d0 __asm("d0")=flags; __asm volatile (" jsr a6@(-0x60)" : "=r" (res) : "r" (a6), "r" (a0), "r" (d0) : "d0", "d1", "a0", "a1" ); } __inline LONG MUI_RequestA( BASE_PAR_DECL APTR app, APTR win, LONGBITS flags, char *title,char *gadgets,char *format,APTR params) { BASE_EXT_DECL register LONG res __asm("d0"); register struct Library* a6 __asm("a6") = BASE_NAME; register APTR d0 __asm("d0")=app; register APTR d1 __asm("d1")=win; register LONGBITS d2 __asm("d2")=flags; register char * a0 __asm("a0")=title; register char * a1 __asm("a1")=gadgets; register char * a2 __asm("a2")=format; register APTR a3 __asm("a3")=params; __asm volatile (" jsr a6@(-0x2a)" : "=r" (res) : "r" (a6), "r" (d0), "r" (d1), "r" (d2), "r" (a0), "r" (a1), "r" (a2), "r" (a3) : "d0", "d1", "a0", "a1", "d2", "a2", "a3" ); return res; } LONG MUI_Request(APTR app, APTR win, LONGBITS flags, char *title, char *gadgets, char *format, ...) { return(MUI_RequestA(app, win, flags, title, gadgets, format, (APTR) (((ULONG)&format)+4) )); } __inline void MUI_RequestIDCMP( BASE_PAR_DECL Object *obj, ULONG flags) { BASE_EXT_DECL register res __asm("d0"); register struct Library* a6 __asm("a6") = BASE_NAME; register Object * a0 __asm("a0")=obj; register ULONG d0 __asm("d0")=flags; __asm volatile (" jsr a6@(-0x5a)" : "=r" (res) : "r" (a6), "r" (a0), "r" (d0) : "d0", "d1", "a0", "a1" ); } __inline LONG MUI_SetError( BASE_PAR_DECL LONG num) { BASE_EXT_DECL register LONG res __asm("d0"); register struct Library* a6 __asm("a6") = BASE_NAME; register LONG d0 __asm("d0")=num; __asm volatile (" jsr a6@(-0x48)" : "=r" (res) : "r" (a6), "r" (d0) : "d0", "d1", "a0", "a1" ); return res; } #undef BASE_EXT_DECL #undef BASE_PAR_DECL #undef BASE_PAR_DECL0 #undef BASE_NAME __END_DECLS #endif /* _INLINE_MUIMASTER_H */