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)14 short 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)67 void 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