#ifdef No_BOSS
#include "mynowin.h"
#else
#include <windows.h>
#endif
#include "my.h"

   typedef struct my_ent {
      unsigned size;
      unsigned *data;
      } MY_ENT;

   MY_ENT my_tab[40]={
       0,NULL,0,NULL,0,NULL,0,NULL,0,NULL,
       0,NULL,0,NULL,0,NULL,0,NULL,0,NULL,
       0,NULL,0,NULL,0,NULL,0,NULL,0,NULL,
       0,NULL,0,NULL,0,NULL,0,NULL,0,NULL,
       0,NULL,0,NULL,0,NULL,0,NULL,0,NULL,
       0,NULL,0,NULL,0,NULL,0,NULL,0,NULL,
       0,NULL,0,NULL,0,NULL,0,NULL,0,NULL,
       0,NULL,0,NULL,0,NULL,0,NULL,0,NULL
        };

   my_snach(size)
   unsigned size;
   {
      int i;
      WINDOWPTR ll;

      for(i=0;(i<40)&&(my_tab[i].size!=0);i++);
      if(i<39){
         if(((char *)my_tab[i].data=calloc(2,size/sizeof(unsigned)))!=NULL){
            my_tab[i].size=size;
            }
         else {
            ll=wn_open(0,3,4,45,5,NVIDEO,NVIDEO);
            v_wtty(7);
#ifdef The_BOSS
            wn_printf(ll,"%i bytes of spy space not available",size);
#else
            printf("%i bytes of spy space not available",size);
#endif
            getch();
            wn_close(ll);
            }
         }
      else {
         ll=wn_open(0,3,4,45,5,NVIDEO,NVIDEO);
         v_wtty(7);
#ifdef The_BOSS
         wn_printf(ll,"spy stack full");
#else
         printf("spy stack full");
#endif
         getch();
         wn_close(ll);
         }
      }




   void my_spy(c)
   char *c;
   {
      unsigned i,j,sum,*t;
      WINDOWPTR ll;

      if (my_tab[0].size != 0)
      for(i=0;(i<40)&&(my_tab[i].size!=0);i++){
         sum=0;
         t=my_tab[i].data;
         for(j=0;j<my_tab[i].size/sizeof(unsigned);j++){
            sum+=*t;
            t++;
            }
         if(sum){
            ll=wn_open(0,3,4,45,5,NVIDEO,NVIDEO);
            v_wtty(7);
#ifdef The_BOSS
            wn_printf(ll,"checksum error on spy block %i\n",i);
            wn_printf(ll,"%s\n",c);
            wn_printf(ll,"unsigned checksum = %x",sum);
#else
            printf("checksum error on spy block %i\n",i);
            printf("%s\n",c);
            printf("unsigned checksum = %x",sum);
#endif
            getch();
            wn_close(ll);
            }
         }
      }

