|
|
@@ -16,16 +16,16 @@ MfcEditorAccessBits
|
|
|
MfcEditorAccessBits result;
|
|
|
|
|
|
uint8_t sector_num = mf_classic_get_sector_by_block(block_num);
|
|
|
- uint8_t trailer_block_num = mf_classic_get_sector_trailer_num_by_sector(sector_num);
|
|
|
+ MfClassicSectorTrailer* trailer = mf_classic_get_sector_trailer_by_sector(data, sector_num);
|
|
|
uint8_t relative_block_num = block_num - mf_classic_get_first_block_num_of_sector(sector_num);
|
|
|
if(sector_num >= 32) {
|
|
|
// 4K large sector - access bits affect range of blocks
|
|
|
relative_block_num /= 5;
|
|
|
}
|
|
|
|
|
|
- uint8_t access_byte_1 = data->block[trailer_block_num].data[6];
|
|
|
- uint8_t access_byte_2 = data->block[trailer_block_num].data[7];
|
|
|
- uint8_t access_byte_3 = data->block[trailer_block_num].data[8];
|
|
|
+ uint8_t access_byte_1 = trailer->access_bits.data[0];
|
|
|
+ uint8_t access_byte_2 = trailer->access_bits.data[1];
|
|
|
+ uint8_t access_byte_3 = trailer->access_bits.data[2];
|
|
|
|
|
|
result.bits = (FURI_BIT(access_byte_3, 4 + relative_block_num) << 2) |
|
|
|
(FURI_BIT(access_byte_3, relative_block_num) << 1) |
|
|
|
@@ -44,16 +44,16 @@ void mfc_editor_set_block_access_bits(
|
|
|
uint8_t block_num,
|
|
|
const MfcEditorAccessBits* access_bits) {
|
|
|
uint8_t sector_num = mf_classic_get_sector_by_block(block_num);
|
|
|
- uint8_t trailer_block_num = mf_classic_get_sector_trailer_num_by_sector(sector_num);
|
|
|
+ MfClassicSectorTrailer* trailer = mf_classic_get_sector_trailer_by_sector(data, sector_num);
|
|
|
uint8_t relative_block_num = block_num - mf_classic_get_first_block_num_of_sector(sector_num);
|
|
|
if(sector_num >= 32) {
|
|
|
// 4K large sector - access bits affect range of blocks
|
|
|
relative_block_num /= 5;
|
|
|
}
|
|
|
|
|
|
- uint8_t* access_byte_1 = &data->block[trailer_block_num].data[6];
|
|
|
- uint8_t* access_byte_2 = &data->block[trailer_block_num].data[7];
|
|
|
- uint8_t* access_byte_3 = &data->block[trailer_block_num].data[8];
|
|
|
+ uint8_t* access_byte_1 = &trailer->access_bits.data[0];
|
|
|
+ uint8_t* access_byte_2 = &trailer->access_bits.data[1];
|
|
|
+ uint8_t* access_byte_3 = &trailer->access_bits.data[2];
|
|
|
|
|
|
if(FURI_BIT(access_bits->bits, 0)) {
|
|
|
FURI_BIT_SET(*access_byte_2, 4 + relative_block_num);
|