Расчет контрольных сумм
Назначение - проверка без выпайки прошивок ПЗУ, которые программно доступны процессору. Может быть полезна для поиска нестандартных прошивок.
Для расчета используется алгоритм CRC-16 с полиномом 0x1021 и начальным значением 0xFFFF. Такой же применяется при подсчете КС секторов контроллерами НГМД IBM PC.
Чтобы посчитать КС ПЗУ нужно ввести в ячейки $1858 и $1859 адрес первого байта ПЗУ, а в ячейки $185A и $185B - адрес последнего байта. Младший байт адреса вводится первым.
Например, чтобы посчитать КС Монитора, нужно ввести:
После чего запустить программу:
По умолчанию в ячейках $1858 - $185B задан адрес самой программы, поэтому можно легко проверить, правильно ли она введена в память. Нужно просто ввести 1800G и сравнить значение с эталонным.
Агат-7
1800:A0 01 BE 58 18 96 84 88
1808:10 F8 84 81 84 80 C8 AD
1810:5A 18 C5 84 AD 5B 18 E5
1818:85 90 0D B1 84 20 2F 18
1820:E6 84 D0 EB E6 85 D0 E7
1828:A5 81 A6 80 4C 32 F9 45
1830:81 85 82 4A 4A 4A 4A 45
1838:82 85 82 0A 0A 0A 0A 45
1840:80 85 81 A5 82 6A 6A 6A
1848:AA 6A 29 E0 45 82 85 80
1850:8A 29 1F 45 81 85 81 60
1858:00 18 57 18
КС: 5F98
Агат-9
1800:A0 01 BE 58 18 96 84 88
1808:10 F8 84 81 84 80 C8 AD
1810:5A 18 C5 84 AD 5B 18 E5
1818:85 90 0D B1 84 20 2F 18
1820:E6 84 D0 EB E6 85 D0 E7
1828:A5 81 A6 80 4C 21 F9 45
1830:81 85 82 4A 4A 4A 4A 45
1838:82 85 82 0A 0A 0A 0A 45
1840:80 85 81 A5 82 6A 6A 6A
1848:AA 6A 29 E0 45 82 85 80
1850:8A 29 1F 45 81 85 81 60
1858:00 18 57 18
КС: 2860
Контрольные суммы для некоторых ПЗУ
Монитор Агат 7: C189
Монитор Агат 9: 344D
Контроллер НГМД 140K для Агат 7: B666
Контроллер НГМД 140K для Агат 9: 8F68
Контроллер НГМД 840K (Волжский): 2833
Контроллер НГМД 840K (Загорский): 154B
Контроллер принтера для Агат 9
Область $C400 - $C4FF: 852F
Область $C800 - $CEFF (становится доступной после записи в адрес $C0C3 любого байта): 096E
Адреса указаны для случая, когда контроллер принтера установлен в слот 4.