Будет хуже. Есть другие получше, но нет под них распаковщиков под pdp11.
11306+364=11670 результат PL.PAS + размер распаковщика P16UNP
12470+124=12594 lzsa1
11426+270=11696 lzsa2
11089+??? = mhmt/hst
11047+??? = exomizer3
Вид для печати
Появилась тут у меня гепотиза, когда я в очередной раз запустил "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-файлами. Можете проверить.
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 :)