Бес попутал![]()
Подозреваю, что у меня неправильно реализован флаг 0 (ССИ) -- сейчас он считается взведенным, если "луч" рисует пикселы от 0 до 100 (из 1000). Длительности ССИ в ТО нет, но он должен быть короче.
/me открыл книжку "Узлы и блоки телевизоров" :-)
Длительность видимой части горизонтальной развертки 160 тактов процессора (или 80 символов), длительность сигнала HBlank (горизонтальное гашение луча) - 40 тактов процессора (20 невидимых символов). Каждая строчка начинается с интервала HBlank (40 тактов), затем видимая часть 160 тактов, а не наоборот.
---------- Post added at 01:04 ---------- Previous post was at 01:01 ----------
Код:Тактирование системы: ======================= Задающий генератор - 30,8МГц Тактирование видеосистемы - 15.4МГц (pixelclock) Частота обращения к ОЗУ - 1.54МГц Частота строк - 15400Гц Частота кадров - 50Гц Число строк развертки - (25 + 3) * 11 = 308 Видимых строк - 25 * 11 = 275 Тактов ОЗУ в строке - 100 (80 на видимую часть, 20 на HBlank) Тактов CPU в строке - 200 Команд CPU в строке <= 200 Тактов в кадре - 61600 Тактирование CPU - 3.08МГц (но две фазы - первая и вторая) Полутактовое тактирование CPU - 6.16МГц 10 точек символа равно двум командам процессора.
Нашел на схеме куда заведен сигнал управления 25-й строкой. Этот сигнал называется ФЛ3Н, и заведен он на D17 (ЛА3), туда же, куда и сигнал VBlank (ОКРН). Таким обраозм, этот сигнал аналогичен сигналу обратного хода кадровой развертки, только формируется программно (к слову сказать, не обязательно может выключать 25-ю строку, а вообще любую). Остается открытым вопрос, чем этот сигнал отличается по своему действию от сигнала запрета отображения ФЛ0В?
---------- Post added at 03:12 ---------- Previous post was at 03:07 ----------
Подозреваю, что VBlank и ФЛ3Н просто запрещают отображение, тогда как ФЛ0В и запрещает отображение, и запрещает выборку видеоинформации из памяти.
---------- Post added at 03:21 ---------- Previous post was at 03:12 ----------
Но что-то здесь все равно не так, потому что если реализовать таким образом, то управляющей строки в обычном режиме не видно, т.к. если нулевой бит регистра R10 = 0, отвечающий за самый последний разряд управляющей строки (индикация строки 25), то на время отображения управляющей строки, сбрасывается ФЛ3Н, и строку не видно. А по умолчанию там именно 0, и значит при старте не видно строки.
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Н означает, что сигнал активен при низком уровне (0)
Из темы про 15ИЭ
"по поводу флага 0 надо добавить, что низким уровнем он также блокирует формирование сигнала РИН (режим индикации), который разрешает автоинкремент счетчика символов в ЗУ при индикации. Таким образом, при сброшенном флаге 0 процессор может спокойно работать с ЗУ.
Сброшенный флаг 1 разрешает стандартную блокировку отображения во время 3 маркерных строк (также запретом ЗСРВ) под символами.
Установленный флаг 1 включает режим 5 Гц запрета/разрешения отображения во время 3 маркерных строк. Т.е., очевидно разрешает мигать курсору. Но, похоже, что он должен включаться программно строго во время формирования МСВ (активен вдоль всех 3 битовых маркерных строк), но только на время отображения того символа, под которым курсор! Т.е., похоже, процессор как-то должен программно отслеживать (может по жесткой времянной привязке выполнения команд к времени отображения строки?) момент отображения курсора и в этот момент включать флаг 1, а потом сразу выключать?
Флаг 3, повторю, также блокировкой ЗСРВ, запрещает отображение всей символьной служебной строки."
Кстати, теперь прекрасно работает TSTKGD.SAV с этого сборника:
Все автоматически переключается туда-сюда, между текстовым и графическим экраном. И обратно выходит в режим УКНЦ, если был из него запущен.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)