Появилась тут у меня гепотиза, когда я в очередной раз запустил "ps" на своей сборке...
Собирал я BIOS ПК-11/16 из исходников при помощи rt11.exe, штука удобная, всë там для людей: на лету русский текст из windows кодировки преобразует в koi8-r. Только оригинальные исходники уже в koi8-r...
Собрал из под RT - всё равно отличие
Код:.DIFF/BIN P16.SAV P16ROM.BIN BINCOM comparing/ DK:P16.SAV -- DK:P16ROM.BIN 000000 016/ 000015 000001 000014 000030 032/ 076006 066006 010000 034/ 171767 130264 041503 036/ 142070 144177 006107 040/ 023705 033352 010457 042/ 137772 115772 022000 ?BINCOM-W-Files are different .Код:Comparing files P16.SAV and P16ROM.BIN 0000000E: 0D 01 0000301B: 7C 6C 0000301C: F7 B4 0000301D: F3 B0 0000301E: 38 7F 0000301F: C4 C8 00003020: C5 EA 00003021: 27 36 00003023: BF 9B
Когда-то Titus выкладывал содержимое ОЗУ Союз-Неон после распаковки процессов из ПЗУ. Вытащил из образа памяти все три файла, дал им расширение BIN. Итого P16P.BIN, VT.BIN и WD.BIN. Должны совпасть по содержимому с соответствующими SAV-файлами. Можете проверить.
troosh(13.09.2020)
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
VT.SAV и VT.BIN - отличаются
Если в VT.mac заменить
наКод:.asciz "Дисплей_VT-100"
то совпадёт хвост собранного ПЗУ с оригиналом. Чего то с кодировкой русских букв в файле, который выложен.Код:.byte 264,330,341,337,333,325,331 .asciz "_VT-100"
Смотрю, откуда отличие в начале.
- - - Добавлено - - -
Слово со смещением 16(8) (E(16)) - это "серийник".
Если в P16INI.mac заменить
наКод:ser.No = 13.
то получим полностью идентичный собранный ПЗУКод:ser.No = 1.
Скорее всего дело в восьмибитной кодировке. Классический MACRO.SAV обрезает под семь битов. Но на дискетах, которые шли с Союз-Неон, MACRO.SAV версии V05.04R. Наверное адаптирована под восьмибитную кодировку.
Я использовал MACRO из состава эмулятора Патрона, которая представляется как MACRO V05.06R. Судя по тому, что она не ругается ошибкой на русские буквы - она патченная. Но судя вот поэтому:
а) кодировка всё таки не таКод:8 000010 277 373 302 .asciz "?исплей_VT-100" 000013 361 371 350 000016 375 137 126
б) патчен MACRO не до конца
- - - Добавлено - - -
Дамп исходники из под RT
MACRО пишет правильные байты - однозначно кодировкаКод:DK:VT.MAC BLOCK NUMBER 000000 160/ 011 042 277 373 302 361 371 350 375 137 126 124 055 061 060 060 . " ? { B q y h } _ V T - 1 0 0
- - - Добавлено - - -
И да - с одной стороны MACRO пропатчен правильно, но всё равно не до конца - в своё время в RSX я по другому патчил
- - - Добавлено - - -
Посмотрел коды Ascii, посмотрел на
и понял, что ничего не понимаю. Скажем, в кодировке КОИ8, код буквы Д - 344. У нас в одном случае 277 (неправильный биос), в другом 264 (правильный биос).Код:.byte 264,330,341,337,333,325,331 .asciz "_VT-100"
Код буквы и - 311. НБ - 373, ПБ - 330
Остальные можете сами сравнить. Это не КОИ8, это не ISO 8859-5 Cyrillic (как на гите), это даже не кодировка редактора МИМ (она близка к КОИ8, но ЕМНИП, есть какие то отличия).
- - - Добавлено - - -
Вспомнил кодировку MIM-а. Большие латинские - 100-137, маленькие латинские 300-337, большие русские - 140-177, маленькие русские - 340-377. Таким образом, если смотреть на терминале или печатать на принтере, который не воспринимает 8 бит, то текст получается вполне читаемым - маленькие буквы превращаются в большие. И нет - он не похож на КОИ8![]()
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)