1 /* 2 * update 18 mar 2003 3 * - fake test replaced by good test :) -> more FC13 found 4 */ 5 /* testFC13() */ 6 /* Rip_FC13() */ 7 8 9 10 #include "globals.h" 11 #include "extern.h" 12 13 testFC13(void)14short testFC13 ( void ) 15 { 16 PW_Start_Address = PW_i; 17 18 /* file size < 113 */ 19 if ( (PW_in_size - PW_Start_Address) < 113 ) 20 { 21 /*printf ( "#1 (start:%ld) (size:%ld)\n" , PW_Start_Address , PW_in_size-PW_Start_Address);*/ 22 return BAD; 23 } 24 25 /* get addy of 1st sample */ 26 PW_m = (( in_data[PW_Start_Address+32]*256*256*256)+ 27 ( in_data[PW_Start_Address+33]*256*256)+ 28 ( in_data[PW_Start_Address+34]*256)+ 29 in_data[PW_Start_Address+35] ); 30 31 /* test in-size again */ 32 if ( PW_Start_Address+PW_m > PW_in_size ) 33 { 34 /*printf ( "#2 (start:%ld) (1st smp addy:%ld)\n" , PW_Start_Address , PW_m);*/ 35 return BAD; 36 } 37 38 /* test various addresses */ 39 PW_j = (( in_data[PW_Start_Address+8] *256*256*256)+ 40 ( in_data[PW_Start_Address+9] *256*256)+ 41 ( in_data[PW_Start_Address+10]*256)+ 42 in_data[PW_Start_Address+11] ); 43 44 PW_k = (( in_data[PW_Start_Address+16]*256*256*256)+ 45 ( in_data[PW_Start_Address+17]*256*256)+ 46 ( in_data[PW_Start_Address+18]*256)+ 47 in_data[PW_Start_Address+19] ); 48 49 PW_l = (( in_data[PW_Start_Address+24]*256*256*256)+ 50 ( in_data[PW_Start_Address+25]*256*256)+ 51 ( in_data[PW_Start_Address+26]*256)+ 52 in_data[PW_Start_Address+27] ); 53 54 /* test in-size again */ 55 if ( (PW_j > PW_in_size) || (PW_k > PW_in_size) || (PW_l > PW_in_size) ) 56 { 57 /*printf ( "#2 (start:%ld) (PW_j:%ld) (PW_k:%ld) (PW_l:%ld)\n" , PW_Start_Address , PW_j, PW_k, PW_l);*/ 58 return BAD; 59 } 60 61 /* PW_m is the addy of the 1st sample */ 62 return GOOD; 63 } 64 65 66 Rip_FC13(void)67void Rip_FC13 ( void ) 68 { 69 /* PW_m is the addy of the 1st sample */ 70 71 /* whole sample size */ 72 PW_WholeSampleSize =((in_data[PW_Start_Address+36]*256*256*256)+ 73 (in_data[PW_Start_Address+37]*256*256)+ 74 (in_data[PW_Start_Address+38]*256)+ 75 in_data[PW_Start_Address+39] ); 76 77 OutputSize = PW_WholeSampleSize + PW_m; 78 79 CONVERT = BAD; 80 Save_Rip ( "Future Composer 1.3 module", FC13 ); 81 82 if ( Save_Status == GOOD ) 83 PW_i += 4; /* after SMOD tag */ 84 } 85 86