Цитата Сообщение от SoftCat Посмотреть сообщение
В wav2cas для МС1502 не надо вычитать 256 байт. Именно поэтому у Пасьянса получился размер 5F02h байт, а у Редактора текста вообще получается отрицательный размер 2 - 256 = -254 байта.
Спасибо за подсказку насчет домножения на 100h у МС1502 типов 02h и 08h для получения размера. Кстати, точно .E (EXE) это 08h, а не 80h?

Но! Насчет вычитания из получившегося размера 256 байт я бы все-таки поспорил, так как если их не вычитать - последний блок данных всегда читается с ошибкой контрольной суммы, и как показывает практика - в нем содержатся повторяющиеся одинаковые байты, как правило это FFh, но могут быть и другие.

Предположений несколько: 1) Видимо просто подстраховались и когда делят размер на 100h округляли размер в блоках в большую сторону. С другой стороны не понятно, что если программа занимает скажем 12 байт? Это 1 блок. 1*256 = 256. Минус 256 это 0 байт. Таким образом выходит, что для файлов меньше 256 байт отнимать 256 байт не нужно. Странно, может не предполагали, что могут быть исполнимые проги < 256 байт?
2) Таки отнимать 256 от размера не нужно, но что тогда содержится сразу за последним блоком в поле, предназначенном для контрольной суммы (2 байта). Не контрольная сумма блока - это точно. Мож контрольная сумма всего файла? Или просто мусор..

PS: Да, лажанул в описании wave структуры, спасибо.

---------- Post added at 17:49 ---------- Previous post was at 17:22 ----------

Сейчас погонял файлы - в последнем блоке в поле контрольной суммы у всех файлов содержится 0000h. Ну ладно, не будем тогда отнимать 256 от размера, а буду смотреть - если стоит режим MC1502 и если у последнего блока не совпадает CRC с подсчитаным а равняется 0000h, то это не ошибка а так типо и надо -)))

---------- Post added at 17:53 ---------- Previous post was at 17:49 ----------

Кстати, вы упомянали о сорцах биоса 1502, не осталось-ли их у вас, чтоб посмотреть так сказать воочию на всю эту картину...