Привет, AmiS !!! 24-Jan-03 вы═писали: A>> вообщем исходник аттачем. A>> AmiS: что я тут напутал? A>> вроде бы работает, а нетак! A> Что именно не так? Вообще-то у меня твой пример забутил всю машину после того как я A> попытался скаут открыть. Что тебе не нравится в коде что ты делаешь? Вроде всё правильно A> но не стоит ожидать что Printf() будет работать. Скорее всего не будет. Printf() работать не будет,═если вызывает его не процесс, а задача. Поэтому я загружаю amirus2 из шела в рамках его процесса. а зачем scout? пачи посмотреть? впрочем у меня все нормально. запускается. см. второе письмо (от 24 января) A> Что тебе не понятно то? мне не понятно,═почему нельзя так: <sb> SAVEDS ASM(BYTE) amirus_OpenDevice(REG(a0, CONST_STRPTR devName), REG(d0, ULONG unit), REG(a1, struct IORequest *ioRequest), REG(d1, ULONG flags) ) { BYTE err; err=(*oldOpenDevice)(devName, unit, ioRequest, flags); if(!err) { /* тута мы записываем список и всякие там функции вызываем */ }; return err; /* вот err и портится! :-((((((( */ } <sb> а надо так: <sb> SAVEDS ASM(BYTE) amirus_OpenDevice(REG(a0, CONST_STRPTR devName), REG(d0, ULONG unit), REG(a1, struct IORequest *ioRequest), REG(d1, ULONG flags) ) { BYTE err; if(err=(*oldOpenDevice)(devName, unit, ioRequest, flags)) { return err; }else { /* и только тут мы записываем всякие списки и вызываем нужные нам функции */ return 0; }; } <sb> конечно разница не существена. но все же ! не совсем понятен механизм работы с регистрами. уже и исходник asm смотрел..... :-( может это Шторм выглучивается? Пока! Вовка.