From: b Date: Sun, 26 Feb 2012 18:51:00 +0000 (+0100) Subject: -zmiana trybu CGA na VGA X-Git-Tag: v1.0 X-Git-Url: http://bicyclesonthemoon.info/git-projects/?a=commitdiff_plain;h=c1441ca5846462d8f5156799412e225f6fee0233;p=cpied -zmiana trybu CGA na VGA -działa wysokość 14 i 16 -wszystkie wysokości są widoczne na jednym ekranie -można zapisywać pliki i załadować stronę do systemu -można otworzyć podać plik do otwarcia jako argument w wierszu poleceń -wczytywane dane nie są już wypisywane na ekranie -Funkcje klawiszy F zgadzają się z opisem na dole ekranu --- c1441ca5846462d8f5156799412e225f6fee0233 diff --git a/EGAVGA.OBJ b/EGAVGA.OBJ new file mode 100644 index 0000000..9098132 Binary files /dev/null and b/EGAVGA.OBJ differ diff --git a/NAPISY.CPP b/NAPISY.CPP new file mode 100644 index 0000000..1dfc80a --- /dev/null +++ b/NAPISY.CPP @@ -0,0 +1,1850 @@ +#include +#include +#include +#include +#include +#include + +//#include + +struct FontFileHeader +{ + unsigned char id0; + unsigned char id[7]; + unsigned char reserved[8]; + short pnum; + unsigned char ptyp; + long fih_offset; +}; +struct FontInfoHeader +{ + short num_codepages; +}; +struct CodePageEntryHeader +{ + short cpeh_size; + long next_cpeh_offset; + short device_type; + unsigned char device_name[8]; + short codepage; + unsigned char reserved[6]; + long cpih_offset; +}; +struct CodePageInfoHeader +{ + short version; + short num_fonts; + short size; +}; +struct ScreenFontHeader +{ + unsigned char height; + unsigned char width; + unsigned char yaspect; + unsigned char xaspect; + short num_chars; +}; +struct char8 +{ + unsigned char lin[8]; +}; +struct char14 +{ + unsigned char lin[14]; +}; +struct char16 +{ + unsigned char lin[16]; +}; +struct ScreenFontBitmap16 +{ + char16 lit[256]; +}; + +struct ScreenFontBitmap14 +{ + char14 lit[256]; +}; + +struct ScreenFontBitmap8 +{ + char8 lit[256]; +}; + + + int status; + char nazwap[40]="Nie_wybrano_pliku"; + char err[40]; +// int kart8=CGA; +// int kart14=EGA; + int kart16=VGA; +// int tryb8=CGAC2; +// int tryb14=EGAHI; + int tryb16=VGAHI; + + FILE *CPI; + FontFileHeader FFH; + FontInfoHeader FIH; + CodePageEntryHeader CPEH[6]; + CodePageInfoHeader CPIH[6]; + ScreenFontHeader SFH[6][3]; + ScreenFontBitmap16 SFB16[6]; + ScreenFontBitmap14 SFB14[6]; + ScreenFontBitmap8 SFB8[6]; + + int byo8[6]; + int byo14[6]; + int byo16[6]; + int wys=8; + int cp=0; + int lit=0x42; + int curx=2; + int cury=2; + int key; + int tab=0; + char abc[16]="0123456789ABCDEF"; + + +int pot(int a,int n) +{ + int y=1; + for(int i=0;i0) + { + if((SFB14[cp].lit[l].lin[a]%(0x80/pot(2,b)*2))/(0x80/pot(2,b))==1) + putpixel(176+b+(l%16)*8,223+a+(l/16)*14,GREEN); + else + putpixel(176+b+(l%16)*8,223+a+(l/16)*14,BLACK); + } + else + { + if((SFB14[cp].lit[l].lin[a]/0x80)==1) + putpixel(176+b+(l%16)*8,223+a+(l/16)*14,GREEN); + else + putpixel(176+b+(l%16)*8,223+a+(l/16)*14,BLACK); + } + } + else + { + + if(b>0) + { + if((SFB14[cp].lit[l].lin[a]%(0x80/pot(2,b)*2))/(0x80/pot(2,b))==1) + putpixel(176+b+(l%16)*8,223+a+(l/16)*14,BROWN); + else + putpixel(176+b+(l%16)*8,223+a+(l/16)*14,BLACK); + } + else + { + if((SFB14[cp].lit[l].lin[a]/0x80)==1) + putpixel(176+b+(l%16)*8,223+a+(l/16)*14,BROWN); + else + putpixel(176+b+(l%16)*8,223+a+(l/16)*14,BLACK); + } + } + } + } + } +} +void lin8() +{ + char ab[2]="X"; + setcolor(RED); + outtextxy(176,24,"0123456789ABCDEF"); + outtextxy(168,32,"0"); + outtextxy(168,40,"1"); + outtextxy(168,48,"2"); + outtextxy(168,56,"3"); + outtextxy(168,64,"4"); + outtextxy(168,72,"5"); + outtextxy(168,80,"6"); + outtextxy(168,88,"7"); + outtextxy(168,96,"8"); + outtextxy(168,104,"9"); + outtextxy(168,112,"A"); + outtextxy(168,120,"B"); + outtextxy(168,128,"C"); + outtextxy(168,136,"D"); + outtextxy(168,144,"E"); + outtextxy(168,152,"F"); + + for(int l=0;l<256;++l) + { + for(int a=0;a<8;++a) + { + for(int b=0;b<8;++b) + { + if (l==lit&&wys==8) + { + setcolor(GREEN); + ab[0]=abc[lit%16]; + outtextxy(176+8*(lit%16),24,ab); + ab[0]=abc[lit/16]; + outtextxy(168,32+8*(lit/16),ab); + + if(b>0) + { + if((SFB8[cp].lit[l].lin[a]%(0x80/pot(2,b)*2))/(0x80/pot(2,b))==1) + putpixel(176+b+(l%16)*8,32+a+(l/16)*8,GREEN); + else + putpixel(176+b+(l%16)*8,32+a+(l/16)*8,BLACK); + } + else + { + if((SFB8[cp].lit[l].lin[a]/0x80)==1) + putpixel(176+b+(l%16)*8,32+a+(l/16)*8,GREEN); + else + putpixel(176+b+(l%16)*8,32+a+(l/16)*8,BLACK); + } + } + else + { + + if(b>0) + { + if((SFB8[cp].lit[l].lin[a]%(0x80/pot(2,b)*2))/(0x80/pot(2,b))==1) + putpixel(176+b+(l%16)*8,32+a+(l/16)*8,BROWN); + else + putpixel(176+b+(l%16)*8,32+a+(l/16)*8,BLACK); + } + else + { + if((SFB8[cp].lit[l].lin[a]/0x80)==1) + putpixel(176+b+(l%16)*8,32+a+(l/16)*8,BROWN); + else + putpixel(176+b+(l%16)*8,32+a+(l/16)*8,BLACK); + } + } + } + } + } +} +void lin16() +{ + char ab[2]="X"; + setcolor(RED); + outtextxy(496,103,"0123456789ABCDEF"); + outtextxy(488,115,"0"); + outtextxy(488,131,"1"); + outtextxy(488,147,"2"); + outtextxy(488,163,"3"); + outtextxy(488,179,"4"); + outtextxy(488,195,"5"); + outtextxy(488,211,"6"); + outtextxy(488,227,"7"); + outtextxy(488,243,"8"); + outtextxy(488,259,"9"); + outtextxy(488,275,"A"); + outtextxy(488,291,"B"); + outtextxy(488,307,"C"); + outtextxy(488,323,"D"); + outtextxy(488,339,"E"); + outtextxy(488,355,"F"); + + for(int l=0;l<256;++l) + { + for(int a=0;a<16;++a) + { + for(int b=0;b<8;++b) + { + if (l==lit&&wys==16) + { + setcolor(GREEN); + ab[0]=abc[lit%16]; + outtextxy(496+8*(lit%16),103,ab); + ab[0]=abc[lit/16]; + outtextxy(488,115+16*(lit/16),ab); + + if(b>0) + { + if((SFB16[cp].lit[l].lin[a]%(0x80/pot(2,b)*2))/(0x80/pot(2,b))==1) + putpixel(496+b+(l%16)*8,111+a+(l/16)*16,GREEN); + else + putpixel(496+b+(l%16)*8,111+a+(l/16)*16,BLACK); + } + else + { + if((SFB16[cp].lit[l].lin[a]/0x80)==1) + putpixel(496+b+(l%16)*8,111+a+(l/16)*16,GREEN); + else + putpixel(496+b+(l%16)*8,111+a+(l/16)*16,BLACK); + } + } + else + { + + if(b>0) + { + if((SFB16[cp].lit[l].lin[a]%(0x80/pot(2,b)*2))/(0x80/pot(2,b))==1) + putpixel(496+b+(l%16)*8,111+a+(l/16)*16,BROWN); + else + putpixel(496+b+(l%16)*8,111+a+(l/16)*16,BLACK); + } + else + { + if((SFB16[cp].lit[l].lin[a]/0x80)==1) + putpixel(496+b+(l%16)*8,111+a+(l/16)*16,BROWN); + else + putpixel(496+b+(l%16)*8,111+a+(l/16)*16,EGA_BLACK); + } + } + } + } + } +} +void lit8() +{ + setcolor(BLACK); + for(int z=0;z<128;++z) + line(16,32+z,143,32+z); + setcolor(RED); + outtextxy(20,24,"0 1 2 3 4 5 6 7"); + outtextxy(8,36,"0"); + outtextxy(8,52,"1"); + outtextxy(8,68,"2"); + outtextxy(8,84,"3"); + outtextxy(8,100,"4"); + outtextxy(8,116,"5"); + outtextxy(8,132,"6"); + outtextxy(8,148,"7"); + + for(int a=0;a<8;++a) + { + char ab[2]="q"; + setfillstyle(SOLID_FILL,BROWN); + for(int b=0;b<8;++b) + { + + + if (curx==b&&cury==a&&wys==8) + { + setcolor(GREEN); + ab[0]=abc[curx]; + outtextxy(20+16*curx,24,ab); + ab[0]=abc[cury]; + outtextxy(8,36+16*cury,ab); + rectangle(0x10+b*0x10,0x20+a*0x10,0x1f+b*0x10,0x2f+a*0x10); + if(b>0) + { + if((SFB8[cp].lit[lit].lin[a]%(0x80/pot(2,b)*2))/(0x80/pot(2,b))==1) + floodfill(0x11+b*0x10,0x21+a*0x10,GREEN); + } + else + { + if((SFB8[cp].lit[lit].lin[a]/0x80)==1) + floodfill(0x11+b*0x10,0x21+a*0x10,GREEN); + } + setcolor(BLACK); + rectangle(0x11+b*0x10,0x21+a*0x10,0x1e+b*0x10,0x2e+a*0x10); + } + else + { + + setcolor(BROWN); + if(b>0) + { + if((SFB8[cp].lit[lit].lin[a]%(0x80/pot(2,b)*2))/(0x80/pot(2,b))==1) + { + rectangle(0x10+b*0x10,0x20+a*0x10,0x1f+b*0x10,0x2f+a*0x10); + floodfill(0x11+b*0x10,0x21+a*0x10,BROWN); + } + } + else + { + if((SFB8[cp].lit[lit].lin[a]/0x80)==1) + { + rectangle(0x10+b*0x10,0x20+a*0x10,0x1f+b*0x10,0x2f+a*0x10); + floodfill(0x11+b*0x10,0x21+a*0x10,BROWN); + } + } + } + } + } +} +void lit14() +{ + setcolor(BLACK); + for(int z=0;z<224;++z) + line(16,223+z,143,223+z); + setcolor(RED); + outtextxy(20,215,"0 1 2 3 4 5 6 7"); + outtextxy(8,227,"0"); + outtextxy(8,243,"1"); + outtextxy(8,259,"2"); + outtextxy(8,275,"3"); + outtextxy(8,291,"4"); + outtextxy(8,307,"5"); + outtextxy(8,323,"6"); + outtextxy(8,339,"7"); + outtextxy(8,355,"8"); + outtextxy(8,371,"9"); + outtextxy(8,387,"A"); + outtextxy(8,403,"B"); + outtextxy(8,419,"C"); + outtextxy(8,435,"D"); + + for(int a=0;a<14;++a) + { + char ab[2]="q"; + setfillstyle(SOLID_FILL,BROWN); + for(int b=0;b<8;++b) + { + + + if (curx==b&&cury==a&&wys==14) + { + setcolor(GREEN); + ab[0]=abc[curx]; + outtextxy(20+16*curx,215,ab); + ab[0]=abc[cury]; + outtextxy(8,227+16*cury,ab); + rectangle(16+b*16,223+a*16,31+b*16,238+a*16); + if(b>0) + { + if((SFB14[cp].lit[lit].lin[a]%(0x80/pot(2,b)*2))/(0x80/pot(2,b))==1) + floodfill(17+b*16,224+a*16,GREEN); + } + else + { + if((SFB14[cp].lit[lit].lin[a]/0x80)==1) + floodfill(17+b*16,224+a*16,GREEN); + } + setcolor(BLACK); + rectangle(17+b*16,224+a*16,30+b*16,237+a*16); + } + else + { + + setcolor(BROWN); + if(b>0) + { + if((SFB14[cp].lit[lit].lin[a]%(0x80/pot(2,b)*2))/(0x80/pot(2,b))==1) + { + rectangle(16+b*16,223+a*16,31+b*16,238+a*16); + floodfill(17+b*16,224+a*16,BROWN); + } + } + else + { + if((SFB14[cp].lit[lit].lin[a]/0x80)==1) + { + rectangle(16+b*16,223+a*16,31+b*16,238+a*16); + floodfill(17+b*16,224+a*16,BROWN); + } + } + } + } + } +} +void lit16() +{ + setcolor(BLACK); + for(int z=0;z<256;++z) + line(336,111+z,463,111+z); + setcolor(RED); + outtextxy(340,103,"0 1 2 3 4 5 6 7"); + outtextxy(328,115,"0"); + outtextxy(328,131,"1"); + outtextxy(328,147,"2"); + outtextxy(328,163,"3"); + outtextxy(328,179,"4"); + outtextxy(328,195,"5"); + outtextxy(328,211,"6"); + outtextxy(328,227,"7"); + outtextxy(328,243,"8"); + outtextxy(328,259,"9"); + outtextxy(328,275,"A"); + outtextxy(328,291,"B"); + outtextxy(328,307,"C"); + outtextxy(328,323,"D"); + outtextxy(328,339,"E"); + outtextxy(328,355,"F"); + + for(int a=0;a<16;++a) + { + char ab[2]="q"; + setfillstyle(SOLID_FILL,BROWN); + for(int b=0;b<8;++b) + { + + + if (curx==b&&cury==a&&wys==16) + { + setcolor(GREEN); + ab[0]=abc[curx]; + outtextxy(340+16*curx,103,ab); + ab[0]=abc[cury]; + outtextxy(328,115+16*cury,ab); + rectangle(336+b*16,111+a*16,351+b*16,126+a*16); + if(b>0) + { + if((SFB16[cp].lit[lit].lin[a]%(0x80/pot(2,b)*2))/(0x80/pot(2,b))==1) + floodfill(337+b*16,112+a*16,GREEN); + } + else + { + if((SFB16[cp].lit[lit].lin[a]/0x80)==1) + floodfill(337+b*16,112+a*16,GREEN); + } + setcolor(BLACK); + rectangle(337+b*16,112+a*16,350+b*16,125+a*16); + } + else + { + + setcolor(BROWN); + if(b>0) + { + if((SFB16[cp].lit[lit].lin[a]%(0x80/pot(2,b)*2))/(0x80/pot(2,b))==1) + { + rectangle(336+b*16,111+a*16,351+b*16,126+a*16); + floodfill(337+b*16,112+a*16,BROWN); + } + } + else + { + if((SFB16[cp].lit[lit].lin[a]/0x80)==1) + { + rectangle(336+b*16,111+a*16,351+b*16,126+a*16); + floodfill(337+b*16,112+a*16,BROWN); + + } + } + } + } + } +} + + +void spc8() +{ + if(SFB8[cp].lit[lit].lin[cury]%(0x100/pot(2,curx))/(0x80/pot(2,curx))==1) + SFB8[cp].lit[lit].lin[cury]-=(0x80/pot(2,curx)); + else + SFB8[cp].lit[lit].lin[cury]+=(0x80/pot(2,curx)); +} +void bsp8() +{ + if(SFB8[cp].lit[lit].lin[cury]%(0x100/pot(2,curx))/(0x80/pot(2,curx))==1) + SFB8[cp].lit[lit].lin[cury]-=(0x80/pot(2,curx)); +} +void ent8() +{ + if(SFB8[cp].lit[lit].lin[cury]%(0x100/pot(2,curx))/(0x80/pot(2,curx))!=1) + SFB8[cp].lit[lit].lin[cury]+=(0x80/pot(2,curx)); +} +void spc14() +{ + if(SFB14[cp].lit[lit].lin[cury]%(0x100/pot(2,curx))/(0x80/pot(2,curx))==1) + SFB14[cp].lit[lit].lin[cury]-=(0x80/pot(2,curx)); + else + SFB14[cp].lit[lit].lin[cury]+=(0x80/pot(2,curx)); +} +void bsp14() +{ + if(SFB14[cp].lit[lit].lin[cury]%(0x100/pot(2,curx))/(0x80/pot(2,curx))==1) + SFB14[cp].lit[lit].lin[cury]-=(0x80/pot(2,curx)); +} +void ent14() +{ + if(SFB14[cp].lit[lit].lin[cury]%(0x100/pot(2,curx))/(0x80/pot(2,curx))!=1) + SFB14[cp].lit[lit].lin[cury]+=(0x80/pot(2,curx)); +} +void spc16() +{ + if(SFB16[cp].lit[lit].lin[cury]%(0x100/pot(2,curx))/(0x80/pot(2,curx))==1) + SFB16[cp].lit[lit].lin[cury]-=(0x80/pot(2,curx)); + else + SFB16[cp].lit[lit].lin[cury]+=(0x80/pot(2,curx)); +} +void bsp16() +{ + if(SFB16[cp].lit[lit].lin[cury]%(0x100/pot(2,curx))/(0x80/pot(2,curx))==1) + SFB16[cp].lit[lit].lin[cury]-=(0x80/pot(2,curx)); +} +void ent16() +{ + if(SFB16[cp].lit[lit].lin[cury]%(0x100/pot(2,curx))/(0x80/pot(2,curx))!=1) + SFB16[cp].lit[lit].lin[cury]+=(0x80/pot(2,curx)); +} +int otw2() +{ + int a; + int b; + int c; + int d; + for(int z=0;z<6;++z) + { + byo8[z]=0; + byo14[z]=0; + byo16[z]=0; + } + CPI=fopen(nazwap,"rb"); + + if(CPI==NULL) + { + sprintf(err,"100: Bˆ¥d otwarcia pliku"); + return 1; + } + else + sprintf(err,"OK"); + fread(&FFH,0x19,1,CPI); +// printf("FFH:\n"); +// printf("id0=%2x\n",FFH.id0); +// printf("id=\"%c%c%c%c%c%c%c\"\n",FFH.id[0],FFH.id[1],FFH.id[2],FFH.id[3],FFH.id[4],FFH.id[5],FFH.id[6]); +// printf("reserved=%2x%2x%2x%2x%2x%2x%2x%2x\n",FFH.reserved[0],FFH.reserved[1],FFH.reserved[2],FFH.reserved[3],FFH.reserved[4],FFH.reserved[5],FFH.reserved[6],FFH.reserved[7]); +// printf("pnum=%d\n",FFH.pnum); +// printf("ptyp=%2x\n",FFH.ptyp); +// printf("fih_offset=%p\n\n",FFH.fih_offset); + + if(FFH.id0!=0xff) + { + sprintf(err,"101: FFH.id0!=0xff"); + fclose(CPI); + return 101; + } + if(FFH.id[0]!='F'||FFH.id[1]!='O'||FFH.id[2]!='N'||FFH.id[3]!='T'||FFH.id[4]!=' '||FFH.id[5]!=' '||FFH.id[6]!=' ') + { + sprintf(err,"102: FFH.id!=\"FONT \""); + fclose(CPI); + return 102; + } + if(FFH.pnum!=1) + { + sprintf(err,"103: FFH.pnum!=1\n"); + fclose(CPI); + return 103; + } + if(FFH.ptyp!=1) + { + sprintf(err,"104: FFH.ptyp!=1\n"); + fclose(CPI); + return 104; + } + fseek(CPI,FFH.fih_offset,0); + fread(&FIH,0x2,1,CPI); +// printf("FFI:\n\n"); +// printf("num_codepages=%d\n\n",FIH.num_codepages); + if(FIH.num_codepages>6) + { + //FIH.num_codepages=6; + sprintf(err,"105: FIH.num_codepages>6\n"); + fclose(CPI); + return 105; + } + + for(a=0; a3) + { + sprintf(err,"109: CPIH.numfonts>3\n"); + fclose(CPI); + return 109; + } + for(b=0;b0) + fseek(CPI,SFH[a][0].height*256+0x6,1); + if(b>1) + fseek(CPI,SFH[a][1].height*256+0x6,1); + + if(SFH[a][b].height==16) + { + for(c=0;c<256;++c) + fread(&SFB16[a].lit[c],0x10,1,CPI); + } + if(SFH[a][b].height==14) + { + for(c=0;c<256;++c) + fread(&SFB14[a].lit[c],0x0e,1,CPI); + } + if(SFH[a][b].height==8) + { + for(c=0;c<256;++c) + fread(&SFB8[a].lit[c],0x08,1,CPI); + } + } + } + + fclose(CPI); + return 0; +} +int zap2() +{ + int a; + int b; + int c; + int d; + + CPI=fopen(nazwap,"wb"); + + if(CPI==NULL) + { + sprintf(err,"200: Bˆ¥d utworzenia pliku:"); + return 200; + } + else + sprintf(err,"OK"); + fwrite(&FFH,0x19,1,CPI); +// printf("FFH:\n"); +// printf("id0=%2x\n",FFH.id0); +// printf("id=\"%c%c%c%c%c%c%c\"\n",FFH.id[0],FFH.id[1],FFH.id[2],FFH.id[3],FFH.id[4],FFH.id[5],FFH.id[6]); +// printf("reserved=%2x%2x%2x%2x%2x%2x%2x%2x\n",FFH.reserved[0],FFH.reserved[1],FFH.reserved[2],FFH.reserved[3],FFH.reserved[4],FFH.reserved[5],FFH.reserved[6],FFH.reserved[7]); +// printf("pnum=%d\n",FFH.pnum); +// printf("ptyp=%2x\n",FFH.ptyp); +// printf("fih_offset=%p\n\n",FFH.fih_offset); + + /*if(FFH.id0!=0xff) + { + sprintf(err,"101: FFH.id0!=0xff"); + fclose(CPI); + return 101; + } + if(FFH.id[0]!='F'||FFH.id[1]!='O'||FFH.id[2]!='N'||FFH.id[3]!='T'||FFH.id[4]!=' '||FFH.id[5]!=' '||FFH.id[6]!=' ') + { + sprintf(err,"102: FFH.id!=\"FONT \""); + fclose(CPI); + return 102; + } + if(FFH.pnum!=1) + { + sprintf(err,"103: FFH.pnum!=1\n"); + fclose(CPI); + return 103; + } + if(FFH.ptyp!=1) + { + sprintf(err,"104: FFH.ptyp!=1\n"); + fclose(CPI); + return 104; + }*/ + fseek(CPI,FFH.fih_offset,0); + fwrite(&FIH,0x2,1,CPI); +// printf("FFI:\n\n"); +// printf("num_codepages=%d\n\n",FIH.num_codepages); + /*if(FIH.num_codepages>6) + { + //FIH.num_codepages=6; + sprintf(err,"105: FIH.num_codepages>6\n"); + fclose(CPI); + return 105; + }*/ + + for(a=0; a3) + { + sprintf(err,"109: CPIH.numfonts>3\n"); + fclose(CPI); + return 109; + }*/ + for(b=0;b0) + fseek(CPI,SFH[a][0].height*256+0x6,1); + if(b>1) + fseek(CPI,SFH[a][1].height*256+0x6,1); + + if(SFH[a][b].height==16) + { + for(c=0;c<256;++c) + fwrite(&SFB16[a].lit[c],0x10,1,CPI); + } + if(SFH[a][b].height==14) + { + for(c=0;c<256;++c) + fwrite(&SFB14[a].lit[c],0x0e,1,CPI); + } + if(SFH[a][b].height==8) + { + for(c=0;c<256;++c) + fwrite(&SFB8[a].lit[c],0x08,1,CPI); + } + } + } + + fprintf(CPI,"\nTen plik zostaˆ wygenerowany za pomoc¥ Edytora napis¢w, wersja 1.0\n autor programu: Balthasar Szczepaäski%c",0x1a); + + fclose(CPI); + return 0; +} + +int otw() +{ + printf("\n\n\n\n\n\n\n\n\n\n\n\n "); + setcolor(BLACK); + + outtextxy(144,184," ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ "); + outtextxy(144,192," ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ "); + outtextxy(144,200," ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ "); + outtextxy(144,208," ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ "); + + setcolor(GREEN); + + outtextxy(144,184," ±Nazwa pliku:±±±±±±±±±±±±±±±±±±±±±±±±±±±±± "); + outtextxy(144,192," ± ± "); + outtextxy(144,200," ± ± "); + outtextxy(144,208," ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±± "); + scanf("%s",nazwap); + + closegraph(); + initgraph(&kart16,&tryb16,""); + return otw2(); +} +int zap() +{ + printf("\n\n\n\n\n\n\n\n\n\n\n\n "); + setcolor(BLACK); + + outtextxy(144,184," ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ "); + outtextxy(144,192," ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ "); + outtextxy(144,200," ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ "); + outtextxy(144,208," ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ "); + + setcolor(GREEN); + + outtextxy(144,184," ±Nazwa pliku:±±±±±±±±±±±±±±±±±±±±±±±±±±±±± "); + outtextxy(144,192," ± ± "); + outtextxy(144,200," ± ± "); + outtextxy(144,208," ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±± "); + scanf("%s",nazwap); + + closegraph(); + initgraph(&kart16,&tryb16,""); + return zap2(); +} +int zmn() +{ + printf("\n\n\n\n\n\n\n\n\n\n\n\n "); + setcolor(BLACK); + + outtextxy(144,184," ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ "); + outtextxy(144,192," ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ "); + outtextxy(144,200," ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ "); + outtextxy(144,208," ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ "); + + setcolor(GREEN); + + outtextxy(144,184," ±Numer strony kodowej:±±±±±±±±±±±±±±±±±±±± "); + outtextxy(144,192," ± ± "); + outtextxy(144,200," ± ± "); + outtextxy(144,208," ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±± "); + + scanf("%d",&CPEH[cp].codepage); + closegraph(); + initgraph(&kart16,&tryb16,""); + return CPEH[cp].codepage; +} +int bnd() +{ + printf("\n\n\n\n\n\n\n\n\n\n\n\n "); + setcolor(BLACK); + + outtextxy(144,184," ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ "); + outtextxy(144,192," ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ "); + outtextxy(144,200," ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ "); + outtextxy(144,208," ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ "); + + setcolor(BROWN); + + outtextxy(144,184," ±Nie wczytano pliku CPI±±±±±±±±±±±±±±±±±±± "); + outtextxy(144,192," ± ± "); + outtextxy(144,200," ± ± "); + outtextxy(144,208," ±±±±±±±±±±±±±±±±±±±±±±±±jeszcze raz?(t/n)± "); + + printf("%s",err); + int a; + for(;;) + { + a=bioskey(_KEYBRD_READ); + if(a/0x100==0x14) + { + closegraph(); + initgraph(&kart16,&tryb16,""); + return 0; + } + if(a/0x100==0x31) + { + closegraph(); + initgraph(&kart16,&tryb16,""); + return 1; + } + + } + + +} +int bnd2() +{ + printf("\n\n\n\n\n\n\n\n\n\n\n\n "); + setcolor(BLACK); + + outtextxy(144,184," ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ "); + outtextxy(144,192," ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ "); + outtextxy(144,200," ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ "); + outtextxy(144,208," ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ "); + + setcolor(BROWN); + + outtextxy(144,184," ±Nie zapisano pliku CPI±±±±±±±±±±±±±±±±±±± "); + outtextxy(144,192," ± ± "); + outtextxy(144,200," ± ± "); + outtextxy(144,208," ±±±±±±±±±±±±±±±±±±±±±±±±jeszcze raz?(t/n)± "); + + printf("%s",err); + int a; + for(;;) + { + a=bioskey(_KEYBRD_READ); + if(a/0x100==0x14) + { + closegraph(); + initgraph(&kart16,&tryb16,""); + return 0; + } + if(a/0x100==0x31) + { + closegraph(); + initgraph(&kart16,&tryb16,""); + return 1; + } + + } + + +} +int pmc() +{ + printf("\n\n\n\n\n\n\n\n\n\n\n\n "); + setcolor(BLACK); + + outtextxy(144,184," ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ "); + outtextxy(144,192," ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ "); + outtextxy(144,200," ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ "); + outtextxy(144,208," ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ "); + + setcolor(BROWN); + + outtextxy(144,184," ±Pomoc niedost©pna±±±±±±±±±±±±±±±±±±±±±±±± "); + outtextxy(144,192," ± ± "); + outtextxy(144,200," ± ± "); + outtextxy(144,208," ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±anykey± "); + + printf("%s",err); + bioskey(_KEYBRD_READ); + closegraph(); + initgraph(&kart16,&tryb16,""); + return 0; + + + +} + + + +int main(int argc,char* argv[]) +{ + + + + + +// registerbgidriver(CGA_driver); + registerbgidriver(EGAVGA_driver); + initgraph(&kart16,&tryb16,""); + wys=8; + + new8(); + menu8(); + cpwys(); + ramka8(); + ramka14(); + ramka16(); + lit8(); + lit14(); + lit16(); + lin8(); + lin14(); + lin16(); + setcolor(RED); + outtextxy(184,472,"odczyt"); + + if(argc>1) + { + sprintf(nazwap,"%s",argv[1]); + status=otw2(); + } + else + status=otw(); + while(status!=0) + { + if (bnd()==0) + status=otw(); + else + return status; + } + + + + + new8(); + menu8(); + cpwys(); + ramka8(); + ramka14(); + ramka16(); + lit8(); + lit14(); + lit16(); + lin8(); + lin14(); + lin16(); + + for(;;) + { + key=bioskey(_KEYBRD_READ); + if(tab==0) + { + if(key/0x100==0x48) + { + //w g¢r© + if(cury==0) + cury=wys-1; + else + --cury; + if(wys==8) + lit8(); + if(wys==14) + lit14(); + if(wys==16) + lit16(); + } + if(key/0x100==0x50) + { + //w d¢ˆ + if(cury==wys-1) + cury=0; + else + ++cury; + if(wys==8) + lit8(); + if(wys==14) + lit14(); + if(wys==16) + lit16(); + + } + if(key/0x100==0x4b) + { + //w lewo + if(curx==0) + curx=7; + else + --curx; + if(wys==8) + lit8(); + if(wys==14) + lit14(); + if(wys==16) + lit16(); + } + if(key/0x100==0x4d) + { + //w prawo + if(curx==7) + curx=0; + else + ++curx; + if(wys==8) + lit8(); + if(wys==14) + lit14(); + if(wys==16) + lit16(); + } + if (key/0x100==0x39) + { + //spacja + if(wys==8) + { + spc8(); + lit8(); + lin8(); + } + if(wys==14) + { + spc14(); + lit14(); + lin14(); + } + if(wys==16) + { + spc16(); + lit16(); + lin16(); + } + } + if (key/0x100==0x0e) + { + //backspace + if(wys==8) + { + bsp8(); + lit8(); + lin8(); + } + if(wys==14) + { + bsp14(); + lit14(); + lin14(); + } + if(wys==16) + { + bsp16(); + lit16(); + lin16(); + } + } + if (key/0x100==0x1c) + { + //enter + if(wys==8) + { + ent8(); + lit8(); + lin8(); + } + if(wys==14) + { + ent14(); + lit14(); + lin14(); + } + if(wys==16) + { + ent16(); + lit16(); + lin16(); + } + } + + + } + else + { + if(key/0x100==0x48) + { + //w g¢r© l + if(lit<16) + lit=(0xf0+lit%16); + else + lit=((lit/16-1)*16+lit%16); + lit8(); + lit14(); + lit16(); + if (wys==8) + lin8(); + if (wys==14) + lin14(); + if (wys==16) + lin16(); + + } + if(key/0x100==0x50) + { + //w d¢ˆ l + if(lit>=0xf0) + lit=(0+lit%16); + else + lit=((lit/16+1)*16+lit%16); + lit8(); + lit14(); + lit16(); + if (wys==8) + lin8(); + if (wys==14) + lin14(); + if (wys==16) + lin16(); + } + if(key/0x100==0x4b) + { + //w lewo l + if(lit%16==0) + lit+=15; + else + --lit; + lit8(); + lit14(); + lit16(); + if (wys==8) + lin8(); + if (wys==14) + lin14(); + if (wys==16) + lin16(); + } + if(key/0x100==0x4d) + { + + //w prawo l + if(lit%16==15) + lit-=15; + else + ++lit; + lit8(); + lit14(); + lit16(); + if (wys==8) + lin8(); + if (wys==14) + lin14(); + if (wys==16) + lin16(); + } + } + if (key/0x100==0x0f) + { + //tab + if(tab==0) + tab=1; + else + tab=0; + ramka8(); + ramka14(); + ramka16(); + } + if (key/0x100==0x51) + { + //cp++ + if(cp==FIH.num_codepages-1) + cp=0; + else + ++cp; + cpwys(); + lin8(); + lin14(); + lin16(); + lit8(); + lit14(); + lit16(); + + } + if (key/0x100==0x49) + { + //cp-- + if(cp==0) + cp=FIH.num_codepages-1; + else + --cp; + cpwys(); + lin8(); + lin14(); + lin16(); + lit8(); + lit14(); + lit16(); + + } + if (key/0x100==0x52) + { + //wys-- + if(wys==8) + { + if (byo16[cp]!=0) + { + wys=16; + cury%=16; + } + else + { + if(byo14[cp]!=0) + { + wys=14; + cury%=14; + } + } + } + else + { + if(wys==14) + { + if (byo8[cp]!=0) + { + wys=8; + cury%=8; + } + else + { + if(byo16[cp]!=0) + { + wys=16; + cury%=16; + } + } + } + else + { + if(wys==16) + { + if (byo14[cp]!=0) + { + wys=14; + cury%=14; + } + else + { + if(byo8[cp]!=0) + { + wys=8; + cury%=8; + } + } + } + } + } + ramka8(); + ramka14(); + ramka16(); + cpwys(); + lit8(); + lit14(); + lit16(); + } + if (key/0x100==0x53) + { + //wys++ + if(wys==8) + { + if (byo14[cp]!=0) + { + wys=14; + cury%=14; + } + else + { + if(byo16[cp]!=0) + { + wys=16; + cury%=16; + } + } + } + else + { + if(wys==14) + { + if (byo16[cp]!=0) + { + wys=16; + cury%=16; + } + else + { + if(byo8[cp]!=0) + { + wys=8; + cury%=8; + } + } + } + else + { + if(wys==16) + { + if (byo8[cp]!=0) + { + wys=8; + cury%=8; + } + else + { + if(byo14[cp]!=0) + { + wys=14; + cury%=14; + } + } + } + } + } + ramka8(); + ramka14(); + ramka16(); + cpwys(); + lit8(); + lit14(); + lit16(); + } + if (key/0x100==0x3b) + { + //pomoc + setcolor(RED); + outtextxy(24,472,"pomoc"); + sprintf(err,"Przeczytaj plik \"napisy.txt\""); + pmc(); + new8(); + menu8(); + cpwys(); + ramka8(); + ramka14(); + ramka16(); + lin8(); + lin14(); + lin16(); + lit8(); + lit14(); + lit16(); + cury%=8; + + + } + if (key/0x100==0x3c) + { + //zapisz + setcolor(RED); + outtextxy(104,472,"zapis"); + status=zap(); + while(status!=0) + { + if (bnd2()==0) + status=zap(); + else + break; + } + new8(); + menu8(); + cpwys(); + ramka8(); + ramka14(); + ramka16(); + lin8(); + lin14(); + lin16(); + lit8(); + lit14(); + lit16(); + cury%=8; + + + } + + + if (key/0x100==0x3d) + { + //wczytaj + setcolor(RED); + outtextxy(184,472,"odczyt"); + status=otw(); + while(status!=0) + { + if (bnd()==0) + status=otw(); + else + return status; + } + new8(); + menu8(); + cpwys(); + ramka8(); + ramka14(); + ramka16(); + lin8(); + lin14(); + lin16(); + lit8(); + lit14(); + lit16(); + cp=0; + cury%=8; + + + } + if(key/0x100==0x3e) + { + { + //zapisz+system + setcolor(RED); + outtextxy(104,472,"zapis u¾ycie w systemie"); + status=zap(); + while(status!=0) + { + if (bnd2()==0) + status=zap(); + else + break; + } + if(status==0) + { + sprintf(err,"mode con:cp prep=((%d) %s )",CPEH[cp].codepage,nazwap); + system(err); + sprintf(err,"mode con:cp sel=%d",CPEH[cp].codepage); + system(err); + + } + new8(); + menu8(); + cpwys(); + ramka8(); + ramka14(); + ramka16(); + lin8(); + lin14(); + lin16(); + lit8(); + lit14(); + lit16(); + cury%=8; + + + } + + + + } + if (key/0x100==0x3f) + { + //zmiana numeru + setcolor(RED); + outtextxy(448,472,"zmiana numeru"); + zmn(); + + new8(); + menu8(); + cpwys(); + ramka8(); + ramka14(); + ramka16(); + lin8(); + lin14(); + lin16(); + lit8(); + lit14(); + lit16(); + cury%=8; + + + } + if (key/0x100==0x40) + { + //koniec + setcolor(RED); + outtextxy(592,472,"koniec"); + delay(1000); + break; + } + } + + + closegraph(); + return 0; +} \ No newline at end of file diff --git a/NAPISY.PRJ b/NAPISY.PRJ new file mode 100644 index 0000000..7e450b1 Binary files /dev/null and b/NAPISY.PRJ differ diff --git a/NAPISY.TXT b/NAPISY.TXT new file mode 100644 index 0000000..c3e00a3 --- /dev/null +++ b/NAPISY.TXT @@ -0,0 +1,231 @@ + Edytor napis¢w. wersja 1.0 Balthasar Szczepaäski + + 1.opis programu + 2.sterowanie + 3.zmiany + 4.co nie dziaˆa + 5.wyja˜nienie bˆ©d¢w + 6.kontakt + 7.lista plik¢w + + ============================================================== + + 1.Opis programu + + Program "Edytor napis¢w" sˆu¾y do edycji plik¢w .cpi, w + kt¢rych s¥ zapisane informacje o stronach kodowych i ksztaˆcie + liter na ekranie w trybie tekstowym. Za pomoc¥ tego programu + mo¾na wczytywa† i zapisywa† pliki cpi, zmienia† ksztaˆt liter, + i numer strony kodowej, oraz zaˆadowa† czcionk© do systemu. + Program zostaˆ skompilowany za pomoc¥ Turbo C++ 3.0. + + Program potrafi obsˆu¾y† format "FONT " wyst©puj¥cy w + systemach MS-DOS, IBM PC-DOS, Microsoft Windows 1.x, 2.x, 3.x, + 9x, ME i innych. Nie potrafi obsˆu¾y† formatu "DRFONT " + wyst©puj¥cego w systemie DR-DOS, ani "FONT.NT" wyst©puj¥cego w + systemach Microsoft Windows NT, 2000, XP, Vista, 7. Natomiast + w tych systemach b©d¥ dziaˆaˆy pliki w formacie "FONT ", + tak¾e te utworzone za pomoc¥ tego programu. Liczba stron + kodowych w pliku nie mo¾e przekroczy† 6, szeroko˜† liter musi + wynosi† 8, wysoko˜† liter nie mo¾e mie† innych warto˜ci ni¾ + 8,14,albo 16,przy czym wysoko˜ci nie mog¥ si© powtarza† w + obr©bie jednej strony kodowej, liczba znak¢w musi wynosi† 256. + + Program powinien dziaˆa† w systemach DOS* i Windows** na + komputerze z kart¥ graficzn¥ VGA lub p¢«niejsz¥. Mo¾e dziaˆa† + na emulatorze.*** + + *Nie wiem, czy zadziaˆa w DOSie starszym ni¾ 3.3, zreszt¥ nie + ma sensu u¾ywa† Edytora napis¢w w starszych wersjach DOSa, + poniewa¾ nie obsˆuguj¥ stron kodowych. + + **W systemie Windows 98 i poprzednich nie byˆo ¾adnych + problem¢w. + + W systemie Windows XP, przy niekt¢rych kartach graficznych + program wyˆ¥czaˆ si© natychmiast po wˆ¥czeniu, ale to byˆo w + wersji beta w trybie CGA, w tej wersji powinno dziaˆa†. Je¾eli + nie dziaˆa trzeba uruchomi† system w trybie awaryjnym. + + W systemie Windows Vista program mo¾e zosta† zamkni©ty przez + system z komentarzem "Ten system nie obsˆuguje trybu + peˆnoekranowego.OK". W takim razie nale¾y zast¥pi† sterownik + karty graficzej na wersj© przeznaczon¥ dla Windowsa XP, albo + u¾ywa† programu przy systemie wˆ¥czonym w trybie awaryjnym. + Je¾eli system nie pozwala zainstalowa† sterownika, trzeba + wˆ¥czy† system w trybie awaryjnym i zalogowa† si© jako + Administraktor, a dopiero wtedy instalowa† sterownik. Czasami + system potrafi podmieni† sterownik spowrotem na poprzedni¥, + je˜li ta jest jeszcze na dysku. + + W systemie Windows 7 sytuacja jest identyczna jak w Windowsie + Vista. + + ***Jedynym emulatorem, w kt¢rym pr¢bowaˆem uruchomi† program, + jest DOSBox w wersji 0.63. Program zawiesza si© w nim chwil© + po uruchomieniu, przed narysowaniem ekranu. Nie wiem czy i jak + dziaˆa w innych wersjach DOSBoxa/innych emulatorach. + + ============================================================== + + 2.Sterowanie + + kursor w g¢re: strzaˆka w g¢r© + kursor w d¢ˆ: strzaˆka w d¢ˆ + kursor w lewo: strzaˆka w lewo + kursor w prawo: strzaˆka w prawo + przeˆ¥cznik rysowania i wybierania: tabulator + zamalowanie kratki: enter + zmazanie kratki: backspace + zmiana stanu kratki: spacja + przeˆ¥czanie stron kodowych: page up/page down + przeˆ¥czanie wysoko˜ci liter: insert/delete + + klawisze F: + + F1: pomoc, w tej wersji nie dziaˆa. + + F2: zapis pliku pod podan¥ nazw¥, w razie bˆ©du zapisu mo¾na + spr¢bowa† kolejny raz pod inn¥ nazw¥. + + F3: wczytanie pliku z podanej nazwy, w razie bˆ¥du odczyt + mo¾na spr¢bowa† odczyta† inny plik. Je¾eli ¾aden plik nie + b©dzie wszytany,program zostanie zamkni©ty. + + F4: zapis pliku tak, jak przy F2 i wczytanie do systemu przy + u¾yciu polecenia systemowego MODE. Je¾eli zostanie + nadpisany plik u¾uwany domy˜lnie przez system do ˆadowania + liter zmiany w systemie b©d¥ trwaˆe, nawet przy zapisie za + pomoc¥ F2. w przeciwnym razie zmiany b©d¥ chwilowe. Na + przykˆad je¾eli program jest uruchomiony w DOSie, zmiany + b©d¥ widoczne do ponownego uruchomienia systemu. Je˜l + program zostaˆ uruchomiony w Windowsie z wiersza poleceä, + zmiany b©d¥ widoczne a¾ do zamkni©cia tego wiersza poleceä + i tylko w trybie peˆnoekranowym. Je¾eli program zostaˆ + uruchomiony przez klikni©cie na jego ikon©, albo na ikon© + pliku CPI, zmiany w systemie b©d¥ widoczne tylko do + wyˆ¥czenia programu. W emulatorze najprawdopodobniej nie + b©dzie wida† ¾adnych zmian. + + F5: zmiana numeru aktualnie wybranej strony kodowej. Numery + wi©ksze ni¾ trzycyfrowe mog¥ nie dziaˆa† w niekt¢rych + systemach. + + F6: koniec programu. + + ============================================================== + + 3. Zmiany + + beta: + To jest pierwsza dziaˆ¥j¥ca wersja. + 1.0: + -zmiana trybu CGA na VGA + -dziaˆa wysoko˜† 14 i 16 + -wszystkie wysoko˜ci s¥ widoczne na jednym ekranie + -mo¾na zapisywa† pliki i zaˆadowa† stron© do systemu + -mo¾na otworzy† poda† plik do otwarcia jako argument w + wierszu poleceä + -wczytywane dane nie s¥ ju¾ wypisywane na ekranie + -Funkcje klawiszy F zgadzaj¥ si© z opisem na dole ekranu + + ============================================================== + + 4. Co nie dziaˆa + + -przy przeˆ¥czaniu rozmiaru czcionki okna z zestawem + znak¢w nie s¥ aktualizowane + -nie ma pomocy wewn¥trz programu + -po wyˆ¥czeniu z powodu bˆ©du otwarcia pliku nie jest + wyˆ¥czany tryb graficzny + + ============================================================== + + 5. Wyja˜nienie bˆ©d¢w + + 100: bˆ¥d otwarcia pliku: + Nie da si© otworzy† pliku o podanej nazwie. + + 101: FFH.id0!=0xff + Identyfikator id0 ma inn¥ warto˜† ni¾ 0xff. Plik jest w + formacie "DRFONT " lub nie jest plikiem cpi. + + 102: FFH.id !="FONT " + Plik jest w formacie "FONT.NT" lub "DRFONT ", albo innym, + nieznanym formacie. + + 103: FFH.pnum!=1 + Jest wi©cej wska«nik¢w na FontInfoHeader - plik jest w + nowym, nieznanym formacie lub nie ma ¾adnego wska«nika - + plik nie zawiera danych. + + 104: FFH.ptyp!=1 + FontInfoHeader jest w nieznanym formacie. + + 105: FIH.num_codepages>6 + Plik zawiera wi©cej ni¾ 6 stron kodowych. + + 106: CPEH.cpeh_size!=0x1c + CodePageEntryHeader ma nieprawidˆow¥ dˆugo˜†. + + 107: CPEH.cpeh_device_type!=1 + Czcionka nie jest czcionk¥ ekranow¥, jest przeznaczona na + drukark© lub inne urz¥dzenie. + + 108: CPIH.version!=1 + W pliku w formacie "FONT " umieszczono czcionk© w + formacie "FONT.NT", "DRFONT ", albo innym, nieznanym + formacie. + + 109: CPIH.num_fonts>3 + Strona kodowa zawiera wi©cej ni¾ 3 czczionki. + + 110: SFH.height!=(8 || 14 || 16) + Czcionka ma nieodpowiedni¥ wysoko˜† znak¢w. + + 111: SFH.width!=8 + Czcionka ma nieodpowiedni¥ szeroko˜† znak¢w. + + 112: SFH.num_chars!=256 + Czcionka ma nieodpowiedni¥ ilo˜† znak¢w. + + 113: SFH.height==8 ju¾ byˆo + Wysoko˜† znak¢w==8 wyst©puje w tej stronie kodowej wi©cej + ni¾ raz + + 114: SFH.height==14 ju¾ byˆo + Wysoko˜† znak¢w==14 wyst©puje w tej stronie kodowej wi©cej + ni¾ raz. + + 115: SFH.height==16 ju¾ byˆo + Wysoko˜† znak¢w==16 wyst©puje w tej stronie kodowej wi©cej + ni¾ raz. + + 200: Bˆ¥d utworzenia pliku: + Nie da si© utworzy†/zmodyfikowa† pliku o podanej nazwie. + + Przeczytaj plik "napisy.txt" + Pomoc wewn¥trz programu nie dziaˆa, nale¾y przeczyta† ten + plik. + + ============================================================== + + 6. Kontakt + + e-mali: balthasar_s@interia.pl + telefon: +48664641394 + www: http://www.baltixy.w.interia.pl + + ============================================================== + + 7. Lista plik¢w + + nazwa |rozmiar + ----------+------- + EGAVGA.OBJ| 5658 + NAPISY.TXT| 9388 + NAPISY.EXE| 137623 + NAPISY.CPP| 37801 + NAPISY.PRJ| 4540 + + ==============================================================