home *** CD-ROM | disk | FTP | other *** search
/ Beijing Paradise BBS Backup / PARADISE.ISO / software / BBSDOORW / G_TTOD.C04 < prev    next >
Encoding:
Text File  |  1976-11-25  |  4.8 KB  |  204 lines

  1. #define IRWD 0x800
  2. #define IFMK 0x400
  3. #define IONL 0x10
  4. #define TRUE 1
  5. #define FAULSE 0
  6.  
  7. tape_st(tape_l)
  8.    unsigned int tape_l;        /*╩²╛▌┐Θ│ñ╢╚*/
  9.    /****************/
  10.    /*  ╞⌠╢»┤┼┤°╗·  */
  11.    /****************/
  12.     {rt1(251,0x36c);
  13.      rt1(255);
  14.      rt1(246,0);
  15.      if((~rt1(245)) & IONL)
  16.     {
  17.      printf("\n╟δ╜½┤┼┤°╗·╡─ ON-LINE ╡╞░┤┴┴.\7");
  18.      while((~rt1(245)) & IONL)     /*╡╚┤²░┤┤┼┤°╗·╡─ ON_LINE ╝ⁿ*/
  19.        {if(key()==27) abort("╓╨╢╧╖╡╗╪");
  20.         rt1(251,0x36c);
  21.         rt1(255);
  22.         rt1(246,0);
  23.         }
  24.      }
  25.      rt1(253);                /*╡╣┤°*/
  26.      while(rt1(245) & IRWD)        /* ╡╚┤²┤┼┤°╗·╡╣┤°╜ß╩° */
  27.         if(key()==27) abort("╓╨╢╧╖╡╗╪");
  28.      rt1(250,tape_l);
  29.      }     
  30.  
  31.  
  32.  
  33.  
  34.  
  35. ╥σ  */
  36.  /******************/
  37.  register unsigned int i,j;
  38.  auto unsigned int lastsize,block;        /*╫╓╜┌,╩²╛▌┐Θ*/
  39.  auto unsigned int ost;                /*╜ß╣╣│ñ*/
  40.  auto unsigned long rec_n,change;        /*╬─╝■╝╟┬╝╞≈*/
  41.  auto unsigned char true,typ,cc,*p,*p1,*p2;
  42.  long disk_sp();
  43.  FILE *fp;
  44.  
  45.  /****************/
  46.  /*  │⌡╩╝╗»╩²╛▌  */
  47.  /****************/
  48.  for(i=0;i<3;i++)
  49.  for(j=0;j<100;j++) recno[i][j]=0;
  50.  rec_n=0;
  51.  typ=2;
  52.  true=TRUE;
  53.  
  54.  /**************/
  55.  /* ╢┴╚í╬─╝■├√ */
  56.  /**************/
  57. /* if(number<2) abort("Examples: TTOD filename\7");*/
  58.  if(number<2) abort("╩╡└²: TTOD ╬─╝■├√\7");
  59.  upper(num[1]);
  60.  p=num[1];
  61.  p1=fname[1];
  62.  p2=fname[2];
  63.  for(i=0;((i<8) && (*p!=0) && (*p!=0x2e));i++)
  64.     {*p1++=*p;
  65.      *p2++=*p++;
  66.      }
  67.  strcpy(p1,".DBF");
  68.  strcpy(p2,".TXT");
  69.  
  70.  /******************/
  71.  /*  ┤┤╜¿╜ß╣√╬─╝■  */
  72.  /******************/
  73.  p=tape_mem;
  74. /* if ((fp=fopen(fname[0],"br"))==0) abort("%8s not found\7",fname[0]);*/
  75.  if((fp=fopen(fname[0],"br"))==0) abort("├╗╙╨╒╥╡╜ %8s !\7",fname[0]);
  76.  fseek(fp,8l,0);
  77.  ost=getw(fp);
  78.  fseek(fp,0l,0);
  79.  fread(p,ost,1,fp);
  80.  fclose(fp);
  81. /* if((fp=fopen(fname[1],"bwr"))==0) abort("create file fail\7");*/
  82.  if((fp=fopen(fname[1],"bwr"))==0) abort("┤┤╜¿%s╬─╝■╩º░▄ !\7",fname[1]);
  83.  fwrite(p,ost,1,fp);
  84.  
  85.  /****************/
  86.  /*  ┤┼┤°╗·╫╝▒╕  */
  87.  /****************/
  88.  tape_st(2048);    /*╞⌠╢»┤┼┤°╗·*/
  89.  rt1(20);                /*╠°╣²╥╗╕÷╬─╝■*/
  90.  
  91.  /**************/
  92.  /*  ┤░┐┌╧╘╩╛  */
  93.  /**************/
  94. /* printf("\n waiting ...... ");*/
  95.  printf("\n ╟δ╔╘╡╚......\n");
  96.  
  97.  do
  98.    {
  99.     /************/
  100.     /*╢┴┤┼┤°╩²╛▌*/
  101.     /************/
  102.     if((~rt1(245)) & IONL) abort("┤┼┤°╗·╣╩╒╧\7");
  103.     rt1(0,tape_mem);
  104.     lastsize=rt1(243);    
  105.     if((rt1(245)) & IFMK) break;
  106.     /**************/
  107.     /*  ╗░╡Ñ┤ª└φ  */
  108.     /**************/
  109.     /*║╦╢╘┤┼┤°╜ß╣╣*/
  110.     p=tape_mem;
  111.     if(*p++!=typ) {printf("\n┤┼┤°╜ß╣╣│÷┤φ !");continue;}
  112.     change=(*p++<<16);
  113.     change+=(*p++<<8);
  114.     change+=*p++;
  115.     printf("\r %6lx",change);
  116.     for(i=0;i<68;i++)
  117.       {if(*p==0xee) break;
  118.        /*╚í╓≈╜╨║┼│ñ╢╚*/
  119.        p1=p+1;
  120.        for(j=0;j<10;j++)
  121.     {if((j&0x01)==0) 
  122.        {if((*p1>>4)>9) break;}
  123.      else
  124.        {if((*(p1++)&0x0f)>9) break;}
  125.      }
  126.        /*╚í═│╝╞╛╓║┼*/
  127.        if(j==6)
  128.      j=(*(p+1)>>4)*10+(*(p+1)&0x0f);
  129.        else
  130.          {if((j==9)&&(*(p+1)==0x51)&&((*(p+2)&0xf0)==0x40))
  131.         j=(*(p+2)&0x0f)*10+(*(p+3)>>4);
  132.           else 
  133.         j=0;
  134.       }
  135.        /*╣┌╫╓┼╨▒≡*/
  136.        cc=(*(p+7)==0)? 2:((*(p+7)>>4)==0)? 1:0;
  137.        recno[cc][j]+=1;
  138.        /*╗░╡Ñ╨┤┼╠*/
  139.        if(disk_sp(disk_v())<2048l) abort("┤┼┼╠╥τ│÷\7");
  140.        fputc(0x20,fp);
  141.        for(j=0;j<30;j++)
  142.      {cc=(*p>>4);
  143.       cc+=(cc<10? 0x30:0x57);
  144.       fputc(cc,fp);
  145.       cc=(*p++&0x0f);
  146.       cc+=(cc<10? 0x30:0x57);
  147.       fputc(cc,fp);
  148.       }
  149.        rec_n+=1;
  150.        }
  151.     if(key()==27) break;
  152.     } while(true);
  153.  rt1(253);                  /* ╡╣┤° */
  154.  /**************/
  155.  /*╣╪▒╒╗░╡Ñ╬─╝■*/
  156.  /**************/
  157.  fputc(0x1a,fp);
  158.  fseek(fp,4l,0);
  159.  putl(rec_n,fp);
  160.  fclose(fp);
  161. /************/
  162. /* ╜ß╣√┤µ┼╠ */
  163. /************/
  164.  if((fp=fopen(fname[2],"bwr"))==0) abort("┤┤╜¿%s╬─╝■╩º░▄ !\7",fname[2]);
  165.  fprintf(fp,"           ╗░  ╡Ñ  ┴┐  ═│  ╝╞  ▒φ\r\n");
  166.  fprintf(fp,"==========================================\r\n");
  167.  fprintf(fp," ╛╓║┼    ╬▐╣┌╫╓      ╣┌╫╓=0      ╣┌╫╓=00  \r\n");
  168.  for(i=0;i<100;i++)
  169.     if((recno[0][i]!=0) || (recno[1][i]!=0) || (recno[2][i]!=0))
  170.       {printf("\n %2u╛╓ :%10lu  %10lu  %10lu",i,recno[0][i],recno[1][i],recno[2][i]);
  171.        fprintf(fp," %2u╛╓ :%10lu  %10lu  %10lu\r\n",i,recno[0][i],recno[1][i],recno[2][i]);
  172.        }
  173.  fclose(fp);
  174.  }
  175.  
  176. tape_st(tape_l)
  177.    unsigned int tape_l;        /*╩²╛▌┐Θ│ñ╢╚*/
  178.    /****************/
  179.    /*  ╞⌠╢»┤┼┤°╗·  */
  180.    /****************/
  181.     {rt1(251,0x36c);
  182.      rt1(255);
  183.      rt1(246,0);
  184.      if((~rt1(245)) & IONL)
  185.     {
  186.      printf("\n╟δ╜½┤┼┤°╗·╡─ ON-LINE ╡╞░┤┴┴.\7");
  187.      while((~rt1(245)) & IONL)     /*╡╚┤²░┤┤┼┤°╗·╡─ ON_LINE ╝ⁿ*/
  188.        {if(key()==27) abort("╓╨╢╧╖╡╗╪");
  189.         rt1(251,0x36c);
  190.         rt1(255);
  191.         rt1(246,0);
  192.         }
  193.      }
  194.      rt1(253);                /*╡╣┤°*/
  195.      while(rt1(245) & IRWD)        /* ╡╚┤²┤┼┤°╗·╡╣┤°╜ß╩° */
  196.         if(key()==27) abort("╓╨╢╧╖╡╗╪");
  197.      rt1(250,tape_l);
  198.      }     
  199.  
  200.  
  201.  
  202.  
  203.  
  204.