К вопросу о ПЗУ К155РЕ3 с серийным номером Э85 (у каждой машины, очевидно, уникальный).
Некоторый софт использует его для защиты от перезаписи, да и в целом он просто должен быть. Посмотреть его можно в RT11 через SHOW ALL, в ПРОС - в Техническое обслуживание - Вывод конфигурации
![]()
Если снимать с винчестера образ с защищёнными программами, то на эмуляторе их запустить без файла с этим номером не получится. А выпаивать ПЗУ - грустно.
Я подумал, можно же просто прочитать на бумажке у ПЗУшки этот номер и сгенерировать его программно. Да и если микросхема утрачена на железе, но был известен номер - сгенерировать и прожечь.
Почитал выпаянные с машин ПЗУ с номерами.
Вот что я там увидел:
000000002712 -
Что это есть? По сути перевёрнутый номер и некая контрольная сумма повторяются три раза, за ними идёт некий хвост одинаковый у всех файлов. Вникать что это я не стал, просто "у нас здесь так принято".Код:122700000000 6EC7 122700000000 6EC7 122700000000 6EC7 00FF55AAFF00AF50
К вопросу о контрольной сумме. Как её считать? Простейший перебор алгоритмов результатов не дал. Перед нами что-то своё, и я бы никогда этого не раскурил без... исходников Xhomer!
Смотрим:
Так, а что же дальше?Код:unsigned short CalculateChecksum (void *blk_data, int words_count) { unsigned short *chk_data = (unsigned short*)blk_data; unsigned short a = 0177777; // cksm = -1 words_count = *((unsigned short*)(chk_data + 3)); unsigned short countmax = words_count * 200; countmax = 0x200; // hardcoded for Pro/MEM! unsigned short b; for (int count = 0; count < countmax; count++) { b = *((unsigned short*)(chk_data + count)); a = a ^ b; a = (a << 1) | (a >> 15); } return a; }
Ну я не программист, я схемы и платы рисую. Так что отдал я это на откуп нейронке её постоянно контролируя.
Получилось сыро, неоптимально, но со своей задачей справляется. Кто напишет лучше - тому честь и халва
Выложил это безобразие на github, и даже под винду собрал чтобы без питона юзать (весит аж 1.5 метра, ужас) - https://github.com/Radon17/e85_id_gen
Что оно позволяет делать:
- Генерировать IDшник для замены в папке Xhomer-а
- Генерировать IDшник для прямого прожига в К155РЕ3
- Может проверять эти файлы на валидность
В общем, я не думаю что это вообще хоть кому-то надо, но как проект одного дня для решения супер узкой задачки - пойдёт.
![]()





Ответить с цитированием