int main( int argc, char *argv[] ) { Huint *src; Huint *dst; src = (Huint*)malloc( SIZE ); dst = (Huint*)malloc( SIZE ); copy_bytes( (Hubyte*)dst, (Hubyte*)src, SIZE ); copy_short( (Hushort*)dst, (Hushort*)src, SIZE/2 ); copy_int( dst, src, SIZE/4 ); copy_mem( dst, src, SIZE ); copy_smart( dst, src, SIZE ); free( src ); free( dst ); return 0; }
void decode_program(FILE *f) { int c; char next_sub=0; char *d; d=(char *)calloc(sizeof(char),16384); open_level=0; c=fgetc(f); while (c!=EOF) { if (c=='!') { char d[256]; fgets(&d,256,f); decode_pgf1(d); } else if (isdigit(c) || c=='-') { int cislo; ungetc(c,f); get_cislo(f,&cislo); add_short(cislo); } else if (c=='*') { int cislo; get_cislo(f,&cislo); if (cislo!=517 && next_sub) { js_close_sub(); next_sub=0; } if (cislo!=171 && !iff_mode) pop_and_fill(prog_pos,open_level); switch (cislo) { case 512:js_dialoge(f);break; //Sekce DIALOG case 513:js_first(f);break; //Prikaz FIRST case 514:add_short(152); //Prikaz WHEN_ITEM copy_short(f); add_short(140); get_cislo(f,&cislo); if (cislo>0)add_short(cislo);else add_short(cislo+32767-basic_num); break; case 515:add_short(163); //prikaz WHEN_FLAG copy_short(f); add_short(140); get_cislo(f,&cislo); if (cislo>0)add_short(cislo);else add_short(cislo+32767-basic_num); break; case 516:js_standard(f);break; //prikaz STANDARD case 517:js_sub(f);next_sub=1;break; //prikaz SUB case 520:js_sentence(f);break; //Sekce SENTENCE case -1:js_close_block();break; //znak }// case -2: if (iff_mode) add_if_jump();else error("Neocekavany znak '{' (open_block)"); open_level++; break; //znak {// case 999:save_pgf_name(f);break; case 169:if (iff_mode) add_if_jump(); //prikaz if iff_mode=IF_NOT_JUMP;break; case 170:if (iff_mode!=IF_NOT_JUMP) error("NOT bez IF"); //modifikator not iff_mode=IF_JUMP;break; case 171:if (iff_mode) error("Chybn� pou�it� p�kazu ELSE"); //prikaz else add_else();break; case 173:set_alternative(f);break; default: add_short(cislo);break; } } else if (c=='$') { fgets(d,16384,f); add_string(d); } else if (c=='&') { int cislo; get_cislo(f,&cislo); add_var(cislo); } c=fgetc(f); } free(d); }