День с утра не задался. Вчера пробился над утилиткой конверсии bin to .c10, продрался сквозь быдлокод питониста-3 и получил неудовлетворительный результат: я загрузил бинарь в эмулятор Virtual MC-10,выгрузил образ .c10 и стал подгонять код под результат. Долго ли коротко, но я получил то, что мне не нравится: контрольная сумма блока отличается на 1 и в хвосте почему-то добавляется 0. Вчера вечером пришла в голову идея: посмотреть исходники эмулятора и переписать заново. Взял исходники на FreeBasic и стал переводить. Результат тот же - контрольная сумма больше на 1 и 0 в хвосте. Я уж было думал начать курить дизассемблер ROM и искать, как это реализовано. Но сначала я стал напрягать google своими запросами и вышел на проекты на гитхабе, где каким-то образом формируются файлы .c10. Теперь понеслась другая стадия - автор просто выложил .bat-ник с компиляцией проекта без решения VS2017. Ладно, установил пакет и час страдал с компиляцией. Ни-че-го, студия не хочет скомпилировать сырки проекта mcbasic. Каким-то чудом создал проект, перетянул сырки на Оборзеватель решений, открыл консоль и запустил пакетник. Заработало! Таким же способом скомпилировал Tasm6801, скормил исходник и офигел от сравнения результатов. Полученный файл .c10 открывается эмуляторами. Ладно, исправил исходник и получил такой же рабочий образ кассеты. Где ошибка? Ну конечно в ДНК, то ли в моем, то ли разраба. При вызове функции эмулятора CSAVEM появляется окно:
Бинарь был размером 79 байт, а отсюда и лишний 0 и контрольная сумма больше на 1.
Итоги дня: радуюсь решенной задаче, получил пару тулзов и чувствую себя дураком(не впервой, ага).
Комментарии
Отправить комментарий