+int pffs_find_data_tmp(t_pffs *pffs,u8 sector) {
+
+ u32 iaddr,daddr,dend,dstart;
+ u16 data[3];
+ u8 fnlen;
+
+ iaddr=pffs->base_addr|pffs->sec_addr[pffs->index_sec];
+ dstart=pffs->sec_addr[sector];
+ dend=pffs->sec_addr[sector+1];
+
+ while(iaddr<(pffs->base_addr|pffs->sec_addr[sector+1])) {
+ pffs->fr(iaddr,data,6);
+ if(pffs_check_magic(data[0]))
+ break;
+ daddr=pffs_daddr_msb(data[0])|data[1];
+ if((daddr+data[2]<dstart)|(daddr>=dend)) {
+ fnlen=pffs_fnlen(data[0]);
+ iaddr+=(6+fnlen+fnlen);
+ continue;
+ }
+ else
+ return PFFS_NO_DATA_TMP;
+ }
+
+ pffs->data_tmp_sec=sector;
+ if(pffs_sec_empty(pffs,sector)!=PFFS_SEC_EMPTY)
+ pffs->fe(pffs->base_addr|dstart);
+
+ return PFFS_DATA_TMP_FOUND;;
+}