home *** CD-ROM | disk | FTP | other *** search
/ Flop Magazin 35 / Flop_Magazin_35_1995_03_Raster_cs_Side_A.atr / hcczb1.c < prev    next >
Text File  |  2023-02-26  |  3KB  |  1 lines

  1. #define HEADER  "\n'\tHardcopy obrazku  (320*192)\n\n"¢#define OPENERR "Nejde '%s'!\n\n"¢#define TRANS1  "Prevod dat ...\n"¢#define TRANS2  "Prevedeno.\n\n"¢¢char *inbuf,outbuf[7680];¢¢main()¢{¢char v[80];¢ printf(HEADER);¢ do {¢  printf("\n\n\tP - pokracovani");¢  printf("\n\tA - obsah disku");¢  printf("\n\tQ - konec\n");¢  gets(v);¢  if (v[0]=='p' || v[0]=='P')¢    hardcopy();¢  if (v[0]=='a' || v[0]=='A')¢    cdir();¢  printf("navrat\n");¢ } while(v[0] != 'Q');¢¢ return;¢}¢¢ hardcopy()¢{¢int  in;¢char v[80],bajt[8],name[32];¢int  x,i,y,z,e;¢e=0;¢i=graphics(8);¢inbuf=peek(88)+(peek(89)*256);¢for(in=0;!in;)¢{ printf("\n\tZadej obrazek:\n");¢  gets(name);¢  normalize(name,"*");¢  if((in=copen(name,'r'))<0)¢  { ¢    printf("I/O error %3d on %s\n",-i,name);¢    in=0;¢    return;¢  }¢}¢¢   for (i=0;i<7680;i++)¢     inbuf[i]=cgetc(in);¢¢   close(in);¢   printf(TRANS1);¢¢   for(z=0;z<7680;z+=320)¢     for(y=0;y<40;y++)¢       {¢        bajt[0] = inbuf[z+y];¢        bajt[1] = inbuf[z+y+40];¢        bajt[2] = inbuf[z+y+80];¢        bajt[3] = inbuf[z+y+120];¢        bajt[4] = inbuf[z+y+160];¢        bajt[5] = inbuf[z+y+200];¢        bajt[6] = inbuf[z+y+240];¢        bajt[7] = inbuf[z+y+280];¢¢        for(i=0,x=128;i<8;i++,x/=2)¢        {¢         if(e>7680)¢            return;¢         else¢¢outbuf[e] = ((bajt[0]&x)<<i)+(((bajt[1]&x)<<i)>>1)+(((bajt[2]&x)<<i)>>2)+(((bajt[3]&x)<<i)>>3)+(((bajt[4]&x)<<i)>>4)+(((bajt[5]&x)<<i)>>5)+(((bajt[6]&x)<<i)>>6)+(((bajt[7]&x)<<i)>>7);¢¢         e++;¢        }¢      }¢printf(TRANS2);¢¢ do {¢  printf("\n\n\tH - TISK");¢  printf("\n\tN - navrat do hlavniho menu");¢  printf("\n\tA - obsah disku\n");¢  gets(v);¢  if (v[0]=='h' || v[0]=='H')¢    tisk();¢  if (v[0]=='a' || v[0]=='A')¢    cdir();¢ } while(v[0] != 'N');¢return;¢}¢¢ tisk()¢{¢ char v[40],f;¢ int out,a,z,y,b,c,d,e,g;¢     a=0;¢¢for(out=0;!out;)¢{¢  printf("\n\tTisk na:\n");¢  gets(v);¢  normalize(v,"*");¢  if((out=copen(v,'w'))<0)¢  { ¢    printf("I/O error %3d on %s\n",-out,v);¢    out=0;¢    return;¢  }¢}¢¢printf("\n\tZadej parametr grafiky: ");¢  gets(v);¢  b=val(v);¢¢  do {¢  printf("\n\tZadej kvalitu: 0/1  ");¢  gets(v);¢  c=val(v);¢  }while(c>1);¢¢  cputc(27,out);¢  cputc(51,out);¢  cputc(24-c,out);¢¢  do {¢  printf("\n\tZadej levy okraj:");¢  gets(v);¢  d=val(v);¢  }while(d>150);¢¢  printf("\n\tPouzit ESC l ? A/N:");¢  gets(v);¢  f=v[0];¢  if(f=='a')¢    f='A';¢  if(f=='A')¢  {cputc(27,out);¢  cputc('l',out);¢  cputc(d,out);¢  }¢  for(z=0;z<24;z++)¢   {for(g=0;g<=c;g++)¢     {if(f!='A')¢       for(e=0;e<d;e++)¢        cputc(32,out);¢¢      cputc(27,out);¢      cputc(42,out);¢      cputc(b,out);¢      cputc(64,out);¢      cputc(1,out);¢¢      for(y=0;y<320;y++,a++)¢         cputc(outbuf[a],out);¢      if(g==0)¢       {cputc(27,out);¢        cputc('J',out);¢        cputc(1,out);¢        a=a-(c*320);¢       }¢     if(c==1)¢     {cputc(10,out);¢     cputc(27,out);¢     cputc('j',out);¢     cputc(23,out);¢     }¢    }¢   cputc(10,out);¢¢   }¢  close(out);¢return;¢}¢¢cdir()¢{¢int a,b,in;¢char fc[8],name[80];¢¢  printf("\n\tZadej c. jednotky: ");¢  gets(name);¢  strcpy(fc,"D1:*.*");¢  fc[1]=name[0];¢¢ for(in=0;!in;)¢ {¢  if((in=open(5,6,0,fc))<0)¢  {¢    printf("I/O error %3d on %s\n",-in,fc);¢    in=0;¢    close(5);¢    return;¢  }¢ }¢¢ for(b=1;(a=cgetc(5)) >=0;)¢  { if(a=='\n')¢     { if(b==1)¢       { b=-1;¢         a=32;¢         putchar(a);¢       }¢       else¢         b=1;¢     }¢    putchar(a);¢  }¢close(5);¢gets(name);¢return;¢}¢