|
|
|
|
|
|
|
|
uint32_t maxfiles, index, straddr; |
|
|
uint32_t maxfiles, index, straddr; |
|
|
uint32_t i, n; |
|
|
uint32_t i, n; |
|
|
uint32_t buf[2]; |
|
|
uint32_t buf[2]; |
|
|
|
|
|
uint16_t hash; |
|
|
char str[16], *p=filename; |
|
|
char str[16], *p=filename; |
|
|
|
|
|
|
|
|
filename[0] = 0; |
|
|
filename[0] = 0; |
|
|
|
|
|
|
|
|
if (!maxfiles) return false; |
|
|
if (!maxfiles) return false; |
|
|
maxfiles &= 0xFFFF; |
|
|
maxfiles &= 0xFFFF; |
|
|
index = dirindex; |
|
|
index = dirindex; |
|
|
if (index >= maxfiles) return false; |
|
|
|
|
|
|
|
|
while (1) { |
|
|
|
|
|
if (index >= maxfiles) return false; |
|
|
|
|
|
//Serial.printf("readdir, index = %u\n", index); |
|
|
|
|
|
SerialFlash.read(8 + index * 2, &hash, 2); |
|
|
|
|
|
if (hash != 0) break; |
|
|
|
|
|
index++; // skip deleted entries |
|
|
|
|
|
} |
|
|
dirindex = index + 1; |
|
|
dirindex = index + 1; |
|
|
//Serial.printf("readdir, index = %u\n", index); |
|
|
|
|
|
|
|
|
|
|
|
buf[1] = 0; |
|
|
buf[1] = 0; |
|
|
SerialFlash.read(8 + 4 + maxfiles * 2 + index * 10, buf, 6); |
|
|
SerialFlash.read(8 + 4 + maxfiles * 2 + index * 10, buf, 6); |
|
|
if (buf[0] == 0xFFFFFFFF) return false; |
|
|
if (buf[0] == 0xFFFFFFFF) return false; |