home *** CD-ROM | disk | FTP | other *** search
/ Vectronix 2 / VECTRONIX2.iso / FILES_01 / gszrz6_1.lzh / GSZRZ.REG / GACCTEST.ZIP / GACCTEST / GACCTEST.C next >
C/C++ Source or Header  |  1994-11-11  |  4KB  |  125 lines

  1. /*       GACCTEST.C                                            */
  2. /*                                                             */
  3. /*       Testprogramm für GSZRZ mit appl_read / appl_write.    */
  4. /*                                                             */
  5.  
  6.  
  7. /* Dieses Beispiel soll nur veranschaulichen, wie GSZRZ über das
  8.    appl_write ansprechbar ist. Es ist keine vollständige Implementation
  9.    des XACC Protokolls! */
  10.  
  11.  
  12. /* GACCTEST mu₧ von GACCTEST.PRG in GACCTEST.GTP umbenannt werden, 
  13.    damit eine Parameterübergabe beim Start möglich ist. Pure-C
  14.    erkennt immer noch nicht .GTP als gültige Extension.
  15.  
  16.    Umbenennen in GACCTEST.TTP ist nicht möglich, da sonst kein
  17.    Fenster von GSZRZ geöffnet werden kann.
  18. */
  19.  
  20.  
  21. /*
  22.  
  23. GACCTEST muss folgendermassen aufgerufen werden :
  24.  
  25.     -sz .......    oder -rz ......
  26.  
  27. Die Reihenfolge der Parameter ist hier wichtig. Für MultiTOS
  28. sollte der Dateiname IMMER mit komplettem Pfad übergeben werden,
  29. da GSZRZ sonst die Datei nicht findet, selbst wenn sie im aktuellen
  30. Pfad liegt. Für das ACC ist der aktuelle Pfad der, aus dem es 
  31. gestartet wurde, und nicht der, aus dem GACCTEST aufgerufen wurde.
  32.  
  33. */
  34.  
  35.  
  36.  
  37.  
  38. #include <aes.h>
  39. #include <stdio.h>
  40. #include <string.h>
  41.  
  42.  
  43. int main( int argc, char **argv )
  44. {
  45.     int i;
  46.     int MsgTxBuffer[8];
  47.     int MsgRxBuffer[128];
  48.     int ap_Ruf;
  49.     int ap_id;
  50.     int ereignis, ret;
  51.     char buffer[128];
  52.     char *retmsg;
  53.  
  54.     char CommandLine[128];                    /* be shure this buffer exists while GSZRZ is working! */
  55.                                             /* it should not be destroyed because it takes some time */
  56.                                             /* to parse the commandline */
  57.  
  58.  
  59.     /* init command line */
  60.  
  61.     memset( CommandLine, 0, sizeof(CommandLine));
  62.     i = 1;
  63.  
  64.     while(i < argc)
  65.     {
  66.         strcat(CommandLine,argv[i++]);
  67.         strcat(CommandLine," ");
  68.     }
  69.  
  70.     ap_id = appl_init( );
  71.  
  72.     if ( ap_id != -1 )
  73.     {
  74.         ap_Ruf = appl_find("GSZRZ_30");                                    /* search for the ACC */
  75.         if (ap_Ruf < 0)
  76.         {
  77.             ap_Ruf = appl_find("GSZRZ_ST");
  78.         }
  79.         if (ap_Ruf < 0)
  80.             form_alert( 1,"[1][GSZRZ ACC not found][ Grmpf ] ");
  81.         else
  82.         {
  83.  
  84.             /* preset private message to the GSZRZ ACC */
  85.  
  86.             MsgTxBuffer[0] = 'GZ';
  87.             MsgTxBuffer[1] = ap_id;
  88.             MsgTxBuffer[2] = -1;
  89.             MsgTxBuffer[3] = (int)strlen(CommandLine);                    /* length of commandline    */
  90.             MsgTxBuffer[4] = (unsigned int)((unsigned long)CommandLine & 0XFFFF); /* low part of pointer        */
  91.             MsgTxBuffer[5] = (unsigned int)((unsigned long)CommandLine >> 16);      /* high part of pointer        */
  92.             MsgTxBuffer[6] = 0;
  93.             MsgTxBuffer[7] = 0;
  94.             appl_write(ap_Ruf, 16, MsgTxBuffer);                        /* send message                */
  95.  
  96.  
  97.             /* wait for the answer */
  98.  
  99.             do
  100.             {
  101.                 ereignis = evnt_multi(MU_MESAG | MU_TIMER,                /* wait for events            */
  102.                                     0,0,0,                                /* button                    */
  103.                                     0,0,0,0,0,                            /* no mouse 1                */
  104.                                     0,0,0,0,0,                            /* no mouse 2                */
  105.                                     MsgRxBuffer,                        /* evnt_mesag                */
  106.                                     1000,0,                                /* short delay                */
  107.                                     &ret,&ret,&ret,                        /* evnt_mouse                */
  108.                                     &ret,                                /* ev_mmokstate                */
  109.                                     &ret,                                /* key code                    */
  110.                                     &ret);                                /* evnt_mouse                */
  111.             }while((ereignis != MU_MESAG) || (MsgRxBuffer[0] != 'GZ'));
  112.  
  113.             retmsg = (char *) (((unsigned long) MsgRxBuffer[4] & 0xFFFFL) +
  114.                        (((unsigned long) MsgRxBuffer[5] << 16) & 0xFFFF0000L));
  115.  
  116.             sprintf(buffer,"[1][%s|Exitcode: %d][ OK ]", retmsg, MsgRxBuffer[2]);
  117.             form_alert(1, buffer);                
  118.  
  119.         }
  120.         appl_exit( );
  121.         return( MsgRxBuffer[2]);
  122.     }
  123.     return(-1);
  124. }
  125.