Пятница, 15.12.2017, 09:10
БК-0010.01. Повесть о настоящем компьютере
Главная Регистрация Вход
Приветствую Вас, Гость · RSS
Меню сайта
Категории каталога
Введение в руководство [2]
Введение [0]
Организация БК-0010 [1]
Раздел 1. Организация БК-0010
Работа с МСД [1]
Раздел 2. Работа с МСД
Системные регистры [1]
Раздел 3. Системные регистры
Системное ПО [1]
Раздел 4. Системное программное обеспечение БК-0010
Прерывания. Приоритет ЦП [1]
Раздел 5. Система прерываний БК-0010. Приоритет процессора
Командные прерывания [1]
Раздел 6. Командные прерывания
ЕМТ БК-0010 [1]
Раздел 7. командные прерывания ЕМТ БК-0010
Коды и ассемблер. Мнемокод. [1]
Раздел 8. Коды и ассемблер. Мнемокод. Формат команды
Способы адресации [1]
Раздел 9. Способы адресации
Команды процессора БК-0010 [1]
Раздел 10. Система команд процессора БК-0010
Псевдокоманды. Метки. Комментарии [1]
Раздел 11. Псевдокоманды ассемблера. Метки. Комментарии
Программирование на ассемблере [1]
Раздел 12. Программирование на ассемблере. Начало. Трансляция программ. Ошибки
Отладка программ [1]
Раздел 13. Отладка программ. Позиционно-независимое программирование. Компановка
Подпрограммы ПЗУ БК-0010 [1]
Раздел 14. Подпрограммы ПЗУ БК-0010
Системная область ОЗУ БК-0010 [1]
Раздел 15. Системная область ОЗУ БК-0010. Некоторые секретные сведения об авторе и МП-клубе
Повышение быстродействия БК-0010 [1]
Раздел 16. Вопросы повышения быстродействия БК-0010
Об использовании ПЗУ [1]
Раздел 17. Полезная подпрограмма. Об использовании ПЗУ
Загадочные регистры [1]
Раздел 18. Загадочные регистры
Штурм системной области [1]
Раздел 19. Продолжаем штурм системной области
Об автозапуске программ [1]
Раздел 20. Об автозапуске программ
Коварные программы [1]
Раздел 21. Коварные программы
Еще о системной области [1]
Раздел 22. О пользе плагиата, или еще о системной области
О псевдокомандах и компановке [1]
Раздел 23. Еще раз о псевдокомандах, метках и компановке
Тук-тук, кто в стеке живет? [1]
Раздел 24. Тук-тук, кто в стеке живет?
Фокал с позиций ассемблера [1]
Раздел 25. Взгляд на фокал с позиций ассемблера
Наш опрос
Оцените мой сайт
Всего ответов: 47
 Каталог статей
Главная » Статьи » Загадочные регистры

Загадочные регистры

Если вы обратили внимание, не все адреса из области системных регистров (177600...177777) В БК используются. Но если вы к тому же любопытны, то, наверное, пробовали читать эти адреса в МСД, и убедились, что не все они, помимо перечисленных раньше 5 регистров, "запретные".

Некто с.А.Кумандин, которого вы хорошо должны знать по играм "диверсант" и "long raid", а также по многим другим отличным программам, обратил внимание автора на 2 из них: 177710 и 177712. Не будем описывать, как был поражен автор тем, что при записи по адресу 177712 числа, например, 20, содержимое 177710 начинает меняться загадочным образом! Умолчим и о том, какие предположения он строил. Все это уже в прошлом.
В настоящем же:

системный таймер БК-0010
таймер использует 2 регистра:

177712-регистр управления (РУ),
и
177710-счетчик (PC).

Таймер работает независимо от ЦП, потому никак не влияет ни на скорость исполнения программ, ни на что иное. Если занести в РУ один из кодов: 20,22,120,122, то в PC заносится определенное число, и начинается вычитание 1 до тех пор, пока не возникнет перенос.
Затем цикл повторяется. При этом время, за которое возник перенос, строго задано:
код в РУ время цикла PC, сек (десятич.)
20 0,300
120 1,200
22 2,800
122 11,200
Указанные интервалы времени задаются с точностью тактовой частоты БК-0010, т.е. точность отсчета не хуже ± 0,1-0,2 %. Далеко не случайно, видимо, первые 2 интервала кратны числу 60д!

Итак, "вот вам факт, и делайте с ним что хотите". Например, довольно просто на этой основе сделать таймер для некоторых игр. Нужно только написать подпрограмму, которая бы "ловила" момент перехода через 0 регистра 177710. Конечно, такой таймер не так удобен, как таймер по прерываниям, но зато он и не влияет на скорость работы программ.
Кроме того, если работа таймера по вектору 100 прерывает, например, работу драйверов, то этот их "не трогает".
Вот только, чтобы засечь его показания, нужно обращаться к нему программно не менее 2 раз за время цикла. Но есть целый класс программ, где это вполне допустимо, а весьма большие отсчитываемые интервалы делают такое обращение иногда довольно выгодным, особенно, если высокая точность отсчета времени не нужна.

Категория: Загадочные регистры | Автор: ЗАЛЬЦМАН Ю.А., МП-КЛУБ, г.АЛМА-АТА
Просмотров: 925 | Рейтинг: 0.0/0 |

Всего комментариев: 0
Имя *:
Email *:
Код *:
Используются технологии uCoz
Форма входа

Поиск
Друзья сайта
Статистика