27# if defined(ENABLE_CRDB_DEBUG)
28 OSCR::Serial::printLine(
F(
" ===== ROM DEBUG INFO ===== "));
30 OSCR::Serial::print(FS(OSCR::Strings::Labels::NAME));
31 OSCR::Serial::printLine(_data.name);
33 OSCR::Serial::print(FS(OSCR::Strings::Labels::CRCSum));
34 OSCR::Serial::printLine(_data.crc32);
36 OSCR::Serial::print(FS(OSCR::Strings::Labels::ID));
37 OSCR::Serial::printLine(_data.id32);
39 OSCR::Serial::print(FS(OSCR::Strings::Labels::CHECKSUM));
40 OSCR::Serial::printLine(_data.chksum);
42 OSCR::Serial::print(FS(OSCR::Strings::Labels::SIZE));
43 OSCR::Serial::printLine(_data.size);
45 OSCR::Serial::print(FS(OSCR::Strings::Labels::BANKS));
46 OSCR::Serial::printLine(_data.banks);
48 OSCR::Serial::printLine(
F(
" ========================== "));
60 readNum32(currentRecord->data()->crc32);
61 readNum16(¤tRecord->data()->chksum);
62 readNum32(currentRecord->data()->id32);
63 readNum32(¤tRecord->data()->size);
64 readNum16(¤tRecord->data()->banks);
65 readBytes(¤tRecord->data()->name, 100);
68 bool searchRecord(uint16_t chksumSearch, uint16_t startingRecord = 0)
70 constexpr uint8_t
const offset = 4;
73# if defined(ENABLE_CRDB_DEBUG)
74 OSCR::Serial::printLine(
F(
"<CRDB> Searching..."));
75 OSCR::Serial::print(
F(
"<CRDB> Checksum Search: "));
76 OSCR::Serial::printHex(chksumSearch);
77 OSCR::Serial::printLine();
80 for (uint_fast32_t i = startingRecord; gotoRecordIndex(i) && file.seekCur(offset); ++i)
83 int_fast8_t
const readLen = readNum16(&chksum);
85 if (readLen != 2)
break;
87 if (chksum == chksumSearch)
91# if defined(ENABLE_CRDB_DEBUG)
92 OSCR::Serial::print(
F(
"<CRDB> "));
93 OSCR::Serial::printLine(FS(OSCR::Strings::Common::OK));
100# if defined(ENABLE_CRDB_DEBUG)
101 OSCR::Serial::printLine(
F(
"<CRDB> NOT FOUND"));
108 bool searchRecordNext(uint16_t chksumSearch)
110 return searchRecord(chksumSearch, recordNum);