home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Flop Magazin 35
/
Flop_Magazin_35_1995_03_Raster_cs_Side_A.atr
/
hcczb1.c
< prev
next >
Wrap
Text File
|
2023-02-26
|
3KB
|
1 lines
#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;¢}¢