Super TV Test Version 4.12

Source Code
Present at the end of the ROM is a whole bunch of C code for a file converter and parser.


 * 1) include 
 * 2) include 
 * 3) include 
 * 4) include 
 * 5) include 
 * 6) include 
 * 7) include 
 * 8) include 
 * 9) include 
 * 10) include 
 * 11) include 

int result1 = 0,result2 = 0;

FILE *stream;

unsigned char uuu,mlc,stc; unsigned char far mc[65500],mass[31000],pl1[8000],pl2[8000]; unsigned char far pl3[4100],pl4[1100],pl5[5200]; unsigned char far *bufr; unsigned char kyb[20][20]; int gdriver = DETECT, gmode, errorcode; int high,low,handle; int basa; //смещение кодов long dlina; char *ptpt; FILE *fp; int i,cnt,chr; int x_razm,y_razm,xko,yko; int nomb,bit,k,l,m,n,mk,x,y,xm,xnm,ynm,r,mx,xc,yc,b1,b2,kybbit,pl1bit,pl2bit,oct; int xdef,ydef; //размер по x,y int pl; //длина массива pl5[] long cur_disc,prinpri,symcol[20],symbit[5],kerr; char cur_dir[80]; long xren; kerr=0;

char namef[]="col.bmp          ", outf[]="0";

void main ( int argc, char *argv[] ) { int nomb,bit,k,l,m,n,mk,x,y,xm,xnm,ynm,r,mx,xc,yc,b1,b2,kybbit,pl1bit,pl2bit,oct; int xdef,ydef; //размер по x,y int pl; //длина массива pl5[] long cur_disc,prinpri,symcol[20],symbit[5],kerr; char cur_dir[80]; long xren; kerr=0; clrscr;

if (argc>1) {        strcpy(namef,argv[1]); ptpt=strchr(namef,'.'); if(!ptpt) strcpy(&namef[strlen(namef)],".bmp");

}

lab644:;

getcurdir(0,cur_dir);

if ((handle = _open(namef, O_RDWR)) == -1) {  printf("Ошибка открытия файла!"); goto lab666; } dlina=filelength(handle); _read(handle, mass,dlina); _close(handle); if(xren>32700) {       printf("BMP файл: %s\n\n",namef); printf("Слишком большой файл!"); goto lab666; }

mk=128; stream = fopen("othet.txt", "w+");

for(y=0;y=xm-1) mk=128; } fclose(stream);

if (x+basa>256) {       printf("BMP файл: %s\n\n",namef); printf("Число точек по X: %d\n",x_razm*2); printf("Число точек по Y: %d\n",y_razm); printf("Слишком большой файл!"); goto lab666; }

if (metodc==1) { if (xdef*ydef+basa>256) {       printf("BMP файл: %s\n\n",namef); printf("Число точек по X: %d\n",x_razm*2); printf("Число точек по Y: %d\n",y_razm); printf("Число символов: %d\n",xdef*ydef); printf("Смещение кодов символов: %d\n\n",basa); printf("Слишком большой файл!"); goto lab666; }

for (r=0;r<xdef*ydef;r++) {   pl4[r]=r+basa; } x=xdef*ydef; }

if (metodd==1&&metode==0) {       printf("BMP файл: %s\n\n",namef); printf("Попытка сжатия твердого графического файла!"); goto lab666; }

if (metodc==1&&metodf==0) {       printf("BMP файл: %s\n\n",namef); printf("Попытка сжатия твердого кодирующего файла!"); goto lab666; }

pl=0; if (metodg==1) { pl5[0]=xdef, pl5[1]=ydef, pl5[2]=basa, pl5[3]=x, pl5[4]=metod; pl5[5]=0, pl5[6]=0, pl+=7; }

if (metodf==0) { r=1; for (k=1;k3) pl5[pl]=253,pl++,pl5[pl]=r,pl++,pl5[pl]=pl3[k-1+basa*16],pl++; else for (m=0;m<r;m++) pl5[pl]=pl3[k-1+basa*16],pl++; }

if (metode==1&&metodd==0) { for (k=0;k<x*16;k++) pl5[pl]=pl3[k+basa*16],pl++; }

if (metodg==1) pl5[5]=div(pl-7,256).rem, pl5[6]=div(pl-7,256).quot;

//******** Конец преобразования выходного массива *********

if ((handle = _creat("bmpout.dat", 0)) < 0) { perror("Unable to create output file"); goto lab666; } _write(handle,&pl5[0],pl); _close(handle); //кодовый рабочий файл

if (metodd==1) { if ((handle = _creat("bmpout.grf", 0)) < 0) {   perror("Unable to create output file"); goto lab666; } _write(handle,&pl3[basa*16],x*16); _close(handle); //графический рабочий файл

}

setdisk(3); chdir(cur_dir); chdir("\\"); printf("\n"); printf("Число точек [символов] по X: %d [%d]\n",x_razm*2,xdef); printf("Число точек [символов] по Y: %d [%d]\n",y_razm,ydef); printf("Общее число символов: %d\n",xdef*ydef); printf("Входной BMP файл: %s\n",namef); printf("Выходные DEN файлы: *bmp.dat - стандартный, *chm.dat - оптимизированный\n"); printf("\n\nКонец преобразования.");

getch; exit(0); }