Кто знает, есть ли в Векторе скрытые регистры, которые можно использовать как ячейки памяти?
В которые можно было-бы записать произвольные значения.
Например можно-ли остановить ВИ53 и использовать регистры каналов как 6 Байт памяти?
Кто знает, есть ли в Векторе скрытые регистры, которые можно использовать как ячейки памяти?
В которые можно было-бы записать произвольные значения.
Например можно-ли остановить ВИ53 и использовать регистры каналов как 6 Байт памяти?
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
KTSerg, часы реального времени, например, на КР512ВИ1 имеют 50байт памяти, но вот только эти сами часы на Векторе практически не встречаются.
Вроде бы в эту тему.
Допустим, я хочу написать жутко динамическую игру.
Для этого я собираюсь использовать под игровое поле поочерёдно то план 0 то план 1, план 2 скажем будет под индикаторы, план 3 не показывается.
Включать/выключать планы 0/1 я собираюсь конечно палитрой.
Вопрос - как это правильно организовать?
Правильно ли я понимаю, что цикл игры должен завершаться hlt и затем сразу установка палитры - переключение планов.
Или же лучше поместить включение нужной палитры прямо в прерывание, сразу после установки режимов дисплея?
Или можно и так и так?
Можно и так и так. Немного капитанства - если программирование палитры в основном обработчике прерываний, но реально все время программировать палитру 50 раз в секунду не нужно, организуем флаг необходимости программирования палитры и проверяем его в обработчике (или jmp с модифицируемым адресом).
nzeemin (03.06.2021), parallelno (01.07.2022)
Спасибо.
Процессор работает на частоте 3 МГц, получается на один фрейм 60000 циклов процессора - или меньше?
Где можно посмотреть табличку циклов процессора по операциям?
По поим наблюдениям, очистка одного плана экрана через push занимает больше одного фрейма - это норм или я накосячил?
В заводском мануале Вектора по Ассемблеру. Почему именно там, а не, скажем, в интеловском даташите по i8080 - в Векторе процессор работает не на полной скорости из-за особенностей доступа к шине видеоконтроллера, и поэтому длительность исполнения команд на Векторе считается именно в циклах (каждый из который равен какому-то количеству тактов).
nzeemin (03.06.2021)
312 строк*192 такта=59904 такта/фрейм.
Например здесь в вектор-user 15, правда там есть пара-тройка опечаток. Где-то был исправленный вариант, кажется svofski выкладывал (не в картотеке).
Если полностью развернуть цикл очистки (что конечно не стоит делать), получится 16 тактов*4096 команд=65536 тактов, т.е. немного больше длительности фрейма.
nzeemin (03.06.2021)
Речь вот об этой табличке: https://github.com/svofski/vector06c...uction_Timings
Больше игр нет
nzeemin (04.06.2021)
Пытаюсь сократить свою демку (для ДЕМОДУЛЯЦИЯ 2021 - нужно не больше 256 байт) и вот дошёл до программирования палитры цветов.
Вот установка палитры из программы прерываний (взято у Лебедева из "Секреты Вектора")
Что можно в ней сократить ?
В основном я имею ввиду команду OUT 0CH
поскольку у Лебедева 8 раз прописана OUT 0CH (для надёжности т.к. некоторые Векторы имели плохую запись в ОЗУ цветогенератора)
в тоже время у Черезова всего лишь 3 раза OUT 0CH
а просматривая исходники других авторов я видел даже 2 раза OUT 0CH
Эмулятор и с одного раза OUT 0CH пишет как надо. Но не знаю на ДЕМОДУЛЯЦИИ на чём будут запускать - на реальном Векторе или на эмуляторе.
Где золотая середина ?
;========================
MVI A,88H
OUT 00H
LXI H,COLR15 ; ЗАПИСЬ ПАЛИТРЫ.
LXI D,100FH ; d=16 e=15
INIT1: MOV A,E
OUT 02
MOV A,M
OUT 0CH
OUT 0CH
OUT 0CH
OUT 0CH
OUT 0CH
DCX H
OUT 0CH
DCR E
OUT 0CH
DCR D
OUT 0CH
JNZ INIT1
mvi a,15 ; УСТАНОВКА ЦВЕТА БОРДЮРА
OUT 02
;========================
Ещё вопрос, что будет если квазидиск подключен, а в коде вот этих начальных настроек нету, будет ли это мешать исполнению программы ?
XRA A ;ВЫКЛ. ОЗУ КВАЗИДИСКА.
OUT 10H
Вектор-06Ц reboot http://metamorpho-games.blogspot.com/p/blog-page.html
Если глянуть исходники МДОС Т-72, то там палитру тоже устанавливали за два раза, но между ними была небольшая задержка:
Думаю, такой вариант можно считать оптимальным и по скорости, и по объёму.Код:... L_F613: OUT 00Ch ; палитра -- установка физического цвета PUSH PSW POP PSW PUSH PSW POP PSW DCR E DCR D ; (счётчик -1) OUT 00Ch ; палитра -- установка физического цвета, ещё раз ...
Все ПЗУ на Векторах, как правило, имели при запуске команду отключения КД. Кроме того, квази-диск отключает БЛК-СБР -- там это сделано аппаратно, таким образом, если демку будут запускать, например, загрузкой "с ленты", или из загрузочной записи дискеты, то можно этот момент пропустить, а если из под МДОСа -- то эти команды обязательны.
Последний раз редактировалось Improver; 18.11.2021 в 17:24.
metamorpho (18.11.2021), parallelno (01.07.2022)
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)