Среда, 18.10.2017, 19:37
БК-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
 Каталог статей
Главная » Статьи » Системная область ОЗУ БК-0010

Системная область ОЗУ БК-0010

Когда автор прощался со своими читателями в конце последнего, 14-го раздела, он не предполагал, что так скоро, уже через 2 месяца, он вынужден будет вновь "взяться за перо", под давлением вопросов своих многочисленных корреспондентов. Все эти вопросы касаются распределения ячеек ОЗУ системной области БК-0010, и их назначения. Не обладая в этом отношении исчерпывающей информацией, автор, тем не менее, решился изложить некоторые имеющиеся у него данные по этому вопросу, однако он должен предупредить читателей, что излагаемое не является истиной в последней инстанции. Пусть читатели сами на практике убедятся, где автор прав, а где ошибается. Кроме того, изложение будет по необходимости весьма кратким, а о возможности применения полученных сведений на практике вообще предоставляется судить в основном читателю, после соответствующих экспериментов. Итак, после этих оговорок, автор представляет:
************************************************************************

Раздел 15. Системная область ОЗУ БК-0010.
Системная область (СО) БК-0010 представляет собой область ОЗУ с адресами 0...777, т.е. 400 ячеек памяти, или 1000 байт (вы еще помните, что мы имеем дело с восьмеричными числами?). Назначение этих ячеек самое различное. можно сказать, что это часть "мозга" ЭВМ, наравне с ПЗУ. Но если ПЗУ доступно только для чтения (так сказать, "наследственная память"), то СО - это память оперативная, "приобретенная", заключающая "жизненный опыт" ЭВМ, накопленный после очередного включения.

Обычно ЭВМ сама распоряжается информацией своей СО, но вполне возможно и вмешательство человека. Кроме того, в СО хранятся многочисленные и крайне полезные сведения о текущем режиме ЭВМ, которые часто просто неоткуда взять, кроме СО. Допустим, вам необходимо принудительно установить при запуске программы режим <РП>. Для этого нужно вначале выяснить, не включен ли он уже, иначе мы рискуем вместо установки сбросить этот режим.
То же относится и к любому другому режиму. Или, допустим, нам мало тех 4 цветов, которые имеет БК. введем новые! и это тоже возможно при знании СО.

При запуске ЭВМ в большинство ячеек СО заносится некоторая начальная информация, определенная содержимым ПЗУ (пусковой монитор), другие ячейки очищаются, и т.п.

Значительная часть ячеек СО уже была рассмотрена в предыдущих разделах - это вектора прерываний (4...34,60,100,274), область блока параметров драйвера мг-канала (320...370), и стек (400 ...777).

Рассмотрим некоторые из остальных ячеек, причем, если ячейка не рассматривается, это вовсе не значит, что она не используется системными программами, это либо просто буфер без фиксированного назначения, либо используемый конкретными драйверами непосредственно в процессе работы. из рассмотрения такие ячейки исключены, т.к. нельзя объять необъятное, а возможности их использования программистом весьма ограничены и специфичны, и связаны с вмешательством в работу драйверов, что непросто.
Отметим также, что невозможно во всех случаях оговорить, что произойдет, если изменить содержимое той или иной ячейки. в основном предоставим судить об этом читателю. Можно только указать, что содержимое часто само изменяется при выполнении некоторых команд, например, <РП>,<ВВОД>,<СБР>,<32/64> и проч. Конечно, это относится к различным ячейкам. но смысл в том, что, изменив содержимое ячейки, мы должны помнить: оно может измениться или восстановиться, когда это совсем не нужно.

Ячейки рассмотрим в порядке их адресов:

40...56 - буфер слова состояния дисплея (ССД). Со структурой ССД мы уже знакомы. так вот, каждому биту ССД соответствует 1 байт указанной области адресов, причем младшим битам - младшие адреса. При включении того или иного режима содержимое байта равно 377, при выключении - 0.
Таким образом, например, режиму "32 символа в строке", соответствует байт 40=377, а режиму "64" - 0. То же относится к другим режимам. Изменение режимов драйверами осуществляется в основном при помощи оператора "COMB", поэтому, занеся в байт число, не равное 377 или 0, можно сделать "несбрасываемыми" некоторые режимы. для некоторых режимов, однако, заносимая информация далеко не исчерпывается содержимым байтов ССД, и результат может быть совсем не тот, что ожидается.

104 - буфер кода очередной нажатой клавиши (символа).

106 - число циклов задержки в режиме <повтор>,
нормально - 20000. максимальной скорости отработки режима <повтор>; соответствует 1, мин. - 0 (цикл "sob").

112...120 - код табуляции.
каждая ячейка "отвечает" за 16 знакомест экрана, слева направо. единичный бит соответствует метке табуляции в сл.строке.

154 - "маска" графического курсора. "нормальный" код - 401. При изменении кода меняется как форма самого граф.курсора, так и форма оставляемого им следа на экране, в том числе цвет и наклон линий. 1

56 - текущий номер знакоместа курсора. Номера отсчитываются слева направо и сверху вниз: первая позиция экрана имеет номер 0, последняя - 2777. в реж.<32> номера только четные.

160 - адрес верхнего левого угла очередного знакоместа, в абсолютных адресах (зависит от сдвига экрана).
Можно задать адрес выведения очередного символа или строки, до <в.к.>. 162 - интервал между символами, в режиме <64> - 1, <32> - 2. можно изменять, но для <32> - только четный. Кроме того, число символов в строке до "авто-в.к." сохраняется. По достижении границы экрана возможно зависание.

164 - код размера экрана, норм. - 3000, <рп> - 400. Установка границы хода курсора.

166 - относительный адрес графического курсора, считая от верхнего левого угла рабочего поля экрана до нижнего правого (0...35777). от сдвига не зависит.

170 - абсолютный адрес последней точки, в которой был граф. курсор. после сброса рулона (рп дважды) это - 42000...77777.

202 - начальный адрес экранной области (40000, или 70000 в режиме рп).

204 - относительный адрес начала рулона экранного ОЗУ.
после сброса - 2000, меняется при сдвиге, 1200/1 сдвиг экрана. 206 - размер экранного ОЗУ в байтах (40000, или 10000 для рп).

210 - относительный размер экрана для очистки по клавише сбр, начиная от сл.строки (36000,или 5000 для рп). Запись сюда малого числа блокирует сброс. Можно ввести сброс нужного числа строк или части строки, задав число очищаемых байт.

212,214 - маска цвета фона и переднего плана. В норме (черный фон, красный пер.план) содержимое: 0 и 177777. изменяя маски, можно установить цвета (или тон символов), маскировать символы, и т.п. стандартные маски цветов в БК: 177777, 125252, 52525, 0 (красный, зеленый, синий, черный). действует полностью только в реж.<32>, но можно использовать и в реж.<64> для инверсии символа или иных целей.

216,220 - маска цвета фона и переднего плана сл.строки. Маски аналогичны предыдущим.

Сведения об остальных ячейках не приводятся по указанной выше причине - это в основном или буферы драйверов, или точных данных о них у автора нет, или и то, и другое. в заключение нужно сказать: не следует думать, что приведенные сведения автор почерпнул из какой-либо литературы "ДСП". Нет, такой литературы у него не имеется. Все это - результат изучения БК-0010 и множества экспериментов. Поэтому бесполезно спрашивать автора о том, что он не знает, т.е. о том, что в данное руководство не вошло. А секретов у него нет. С другой стороны, любой из читателей вправе продолжить эксперименты по материалам данного руководства, и вполне может установить то, что не установил автор. БК-0010 для пытливого исследователя - это целая планета, и "белых пятен" на ней предостаточно.

 ******************************************************************************************************************************
а теперь, пользуясь оставшимся местом, автор хотел бы "рассекретить" ответы на некоторые вопросы, которые ему часто задают, а еще чаще подразумевают. мп-клуб при республиканском комитете досааф каз.сср - добровольная организация, объединяющая энтузиастов в области микропроцессорной и вычислительной техники, как профессионалов, так и (в большинстве) любителей. существует около 3 лет. автор является членом совета клуба. направление деятельности клуба - в основном схемотехническое, автор является одним из исключений. членами клуба конструируются и изготовляются самодельные компьютеры (микро-80, рк-86, микроша и др.). автор вынужден здесь указать, что все они по своим возможностям несравненно хуже БК-0010, и почти не имеют программного обеспечения. однако, о вкусах не спорят. сам автор не является профессиональным программистом. кроме того, он также: не торгует программным обеспечением; не берет заказы на изготовление программ и микроэлектронных устройств; не занимается ремонтом БК-0010; не разводит кроликов; не занимается музыкой; не программирует на микрокалькуляторах б3-34 и ес-ЭВМ; не выращивает яблони. он вынужден все это указать, ибо ему задают соответствующие вопросы. автору 38 лет, его зовут юрий. он призывает к контактам лиц, занимающихся системным программированием для БК или хотя бы программированием на ассемблере. его адрес: 480091,алма-ата, ул.джамбула 55/57, кв.8.
всего доброго, спасибо за внимание.

 

*****************следите за новыми выпусками руководства "с и с т е м а" !**************
** основы системного программирования для БК-0010

**

** зальцман ю.а., мп-клуб, г.алма-ата, тел.691797

**

** март 1988 г.

**

*********************************************************************************

Категория: Системная область ОЗУ БК-0010 | Автор: ЗАЛЬЦМАН Ю.А., МП-КЛУБ, г.АЛМА-АТА
Просмотров: 476 | Рейтинг: 0.0/0 |

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

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