Совсем запутался. Постранично читает нормально. Записываю Самбой файл, вычитываю все как надо. Но при этом, во-первых не вижу в 517 байте маркер битого блока (который на самом деле битый и обнаружен Самбой), во-вторых, при 4х байтной адресации (1ый байт - номер байта в странице, 3 остальных - номер блока) 2ой по счету байт не задействован. Т.е. номер 1го блока должен задаваться как 0x00 0x01 0x00 0x00, а реально первую страницу 1го блока определяет адрес 0x00 0x00 0x01 0x00. Такое ощущение, что работа идет не с 8ми, а 16ю разрядами. Взгляд на программу уже замылен, может кто внесет свежий поток мыслей?
|