[amirus] Re: AmiRUS2

  • From: Vovka <jvovka@xxxxxxxxx>
  • To: amirus@xxxxxxxxxxxxx
  • Date: Sat, 25 Jan 2003 10:01:34 +0300

Привет, 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 смотрел..... :-( может это Шторм выглучивается?

Пока! 
Вовка.


Other related posts: