home *** CD-ROM | disk | FTP | other *** search
/ Simtel MSDOS - Coast to Coast / simteldosarchivecoasttocoast2.iso / cpluspls / vir_v203.zip / VIRARRAY.C < prev    next >
C/C++ Source or Header  |  1991-12-11  |  2KB  |  76 lines

  1. #include "stdlib.h"
  2. #include "alloc.h"
  3. #include "..\lib\virimg.h"
  4.  
  5.  
  6.  
  7. #define data_char(x) *((char *)pointer_add(DATA_CHAR,x))
  8. #define image(x,y) *((char *)large_array(x,y))
  9. #define s_image(x) *((char *)pointer_add(S_IMAGE,x))
  10. #define image5(x) *((char *)large_array(5,x))
  11.  
  12. #define SZ 80000
  13.  
  14. void test(void *S_IMAGE)
  15. {
  16.     long i;
  17.     printf ("Checking an arbitary image\n");
  18.     printf ("Filling image\n");
  19.     for (i=0;i<SZ;i++)
  20.         s_image(i)=(char)i;
  21.     printf ("Checking char array\n");
  22.     for (i=0;i<SZ;i++)
  23.         if (s_image(i)!=(char)i) goto ERR2;
  24.     printf ("arbitary image ok\n");
  25.     return;
  26. ERR2:
  27.     printf ("Error checking arbitary image\n");
  28.     exit(-1);
  29. }
  30. #define ARS 10
  31. void main()
  32. {
  33.     long i,j,l;
  34.     initialise_virtual_arrays(3,SZ,15,XXMS);
  35.     printf ("Array size %ld chars\n",SZ);
  36.     printf ("Memory still available %ld\n",coreleft());
  37.     printf ("Press a key to check arrays\n");
  38.     getch();
  39.     start_timer();
  40.     l=0;
  41.     for (j=0;j<ARS;j++)
  42.     {
  43.         printf ("Filling virtual array %d\n",j);
  44.         for (i=0;i<SZ;i++)
  45.         {
  46.             image(j,i)=l;
  47.         }
  48.         l++;
  49.     }
  50.  
  51.     l=0;
  52.     for (j=0;j<ARS;j++)
  53.     {
  54.         printf ("Checking virtual array %d\n",j);
  55.         for (i=0;i<SZ;i++)
  56.         {
  57.             if (image(j,i)!=(char)l) goto ERR;
  58.         }
  59.         l++;
  60.     }
  61.     printf ("All arrays checked out o.k.\n");
  62.     test (img(6));
  63.     printf ("Checking image array 5\n");
  64.     printf ("Filling image\n");
  65.     for (i=0;i<SZ;i++)
  66.         image5(i)=(char)i;
  67.     printf ("Checking char array\n");
  68.     for (i=0;i<SZ;i++)
  69.         if (image5(i)!=(char)i) goto ERR;
  70.     printf ("image array 5 ok\n");
  71.     stop_timer();
  72.     exit(1);
  73. ERR:
  74.     printf ("Error in large array %ld %ld %d %d\n",j,i,(int)(image(j,i)),(int)(char)l);
  75. }
  76.