Важная информация

User Tag List

Страница 22 из 32 ПерваяПервая ... 181920212223242526 ... ПоследняяПоследняя
Показано с 211 по 220 из 312

Тема: Программирование на ассемблере

  1. #211
    Veteran
    Регистрация
    22.02.2014
    Адрес
    г. Курган
    Сообщений
    1,657
    Спасибо Благодарностей отдано 
    218
    Спасибо Благодарностей получено 
    301
    Поблагодарили
    212 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Кто знает, есть ли в Векторе скрытые регистры, которые можно использовать как ячейки памяти?
    В которые можно было-бы записать произвольные значения.
    Например можно-ли остановить ВИ53 и использовать регистры каналов как 6 Байт памяти?

  2. #211
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #212
    Master Аватар для Improver
    Регистрация
    06.02.2018
    Адрес
    г. Волгоград
    Сообщений
    975
    Спасибо Благодарностей отдано 
    430
    Спасибо Благодарностей получено 
    396
    Поблагодарили
    221 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    KTSerg, часы реального времени, например, на КР512ВИ1 имеют 50байт памяти, но вот только эти сами часы на Векторе практически не встречаются.

  4. #213
    Veteran Аватар для nzeemin
    Регистрация
    20.12.2005
    Адрес
    Москва
    Сообщений
    1,999
    Спасибо Благодарностей отдано 
    1,063
    Спасибо Благодарностей получено 
    1,236
    Поблагодарили
    479 сообщений
    Mentioned
    15 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Вроде бы в эту тему.

    Допустим, я хочу написать жутко динамическую игру.
    Для этого я собираюсь использовать под игровое поле поочерёдно то план 0 то план 1, план 2 скажем будет под индикаторы, план 3 не показывается.
    Включать/выключать планы 0/1 я собираюсь конечно палитрой.
    Вопрос - как это правильно организовать?

    Правильно ли я понимаю, что цикл игры должен завершаться hlt и затем сразу установка палитры - переключение планов.
    Или же лучше поместить включение нужной палитры прямо в прерывание, сразу после установки режимов дисплея?
    Или можно и так и так?

  5. #214
    Guru
    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    7,844
    Спасибо Благодарностей отдано 
    654
    Спасибо Благодарностей получено 
    1,821
    Поблагодарили
    1,045 сообщений
    Mentioned
    22 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от nzeemin Посмотреть сообщение
    Или можно и так и так?
    Можно и так и так. Немного капитанства - если программирование палитры в основном обработчике прерываний, но реально все время программировать палитру 50 раз в секунду не нужно, организуем флаг необходимости программирования палитры и проверяем его в обработчике (или jmp с модифицируемым адресом).

  6. Эти 2 пользователя(ей) поблагодарили ivagor за это полезное сообщение:

    nzeemin (03.06.2021), parallelno (01.07.2022)

  7. #215
    Veteran Аватар для nzeemin
    Регистрация
    20.12.2005
    Адрес
    Москва
    Сообщений
    1,999
    Спасибо Благодарностей отдано 
    1,063
    Спасибо Благодарностей получено 
    1,236
    Поблагодарили
    479 сообщений
    Mentioned
    15 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ivagor Посмотреть сообщение
    Можно и так и так. Немного капитанства - если программирование палитры в основном обработчике прерываний, но реально все время программировать палитру 50 раз в секунду не нужно, организуем флаг необходимости программирования палитры и проверяем его в обработчике (или jmp с модифицируемым адресом).
    Спасибо.
    Процессор работает на частоте 3 МГц, получается на один фрейм 60000 циклов процессора - или меньше?
    Где можно посмотреть табличку циклов процессора по операциям?
    По поим наблюдениям, очистка одного плана экрана через push занимает больше одного фрейма - это норм или я накосячил?

  8. #216
    Member
    Регистрация
    05.01.2009
    Адрес
    Харьков
    Сообщений
    151
    Спасибо Благодарностей отдано 
    23
    Спасибо Благодарностей получено 
    13
    Поблагодарили
    11 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от nzeemin Посмотреть сообщение
    получается на один фрейм 60000 циклов процессора - или меньше?
    Где можно посмотреть табличку циклов процессора по операциям?
    В заводском мануале Вектора по Ассемблеру. Почему именно там, а не, скажем, в интеловском даташите по i8080 - в Векторе процессор работает не на полной скорости из-за особенностей доступа к шине видеоконтроллера, и поэтому длительность исполнения команд на Векторе считается именно в циклах (каждый из который равен какому-то количеству тактов).

  9. Этот пользователь поблагодарил x-code за это полезное сообщение:

    nzeemin (03.06.2021)

  10. #217
    Guru
    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    7,844
    Спасибо Благодарностей отдано 
    654
    Спасибо Благодарностей получено 
    1,821
    Поблагодарили
    1,045 сообщений
    Mentioned
    22 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от nzeemin Посмотреть сообщение
    получается на один фрейм 60000 циклов процессора - или меньше?
    312 строк*192 такта=59904 такта/фрейм.
    Цитата Сообщение от nzeemin Посмотреть сообщение
    Где можно посмотреть табличку циклов процессора по операциям?
    Например здесь в вектор-user 15, правда там есть пара-тройка опечаток. Где-то был исправленный вариант, кажется svofski выкладывал (не в картотеке).
    Цитата Сообщение от nzeemin Посмотреть сообщение
    По поим наблюдениям, очистка одного плана экрана через push занимает больше одного фрейма - это норм или я накосячил?
    Если полностью развернуть цикл очистки (что конечно не стоит делать), получится 16 тактов*4096 команд=65536 тактов, т.е. немного больше длительности фрейма.

  11. Этот пользователь поблагодарил ivagor за это полезное сообщение:

    nzeemin (03.06.2021)

  12. #218
    Guru Аватар для svofski
    Регистрация
    20.06.2007
    Адрес
    С.-Петербург
    Сообщений
    4,116
    Спасибо Благодарностей отдано 
    795
    Спасибо Благодарностей получено 
    658
    Поблагодарили
    403 сообщений
    Mentioned
    22 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ivagor Посмотреть сообщение
    Например здесь в вектор-user 15, правда там есть пара-тройка опечаток. Где-то был исправленный вариант, кажется svofski выкладывал (не в картотеке).
    Речь вот об этой табличке: https://github.com/svofski/vector06c...uction_Timings
    Больше игр нет

  13. Этот пользователь поблагодарил svofski за это полезное сообщение:

    nzeemin (04.06.2021)

  14. #219
    Activist Аватар для metamorpho
    Регистрация
    24.08.2012
    Адрес
    г. Волжский
    Сообщений
    339
    Спасибо Благодарностей отдано 
    599
    Спасибо Благодарностей получено 
    173
    Поблагодарили
    58 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Пытаюсь сократить свою демку (для ДЕМОДУЛЯЦИЯ 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

  15. #220
    Master Аватар для Improver
    Регистрация
    06.02.2018
    Адрес
    г. Волгоград
    Сообщений
    975
    Спасибо Благодарностей отдано 
    430
    Спасибо Благодарностей получено 
    396
    Поблагодарили
    221 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от metamorpho Посмотреть сообщение
    Что можно в ней сократить ?
    В основном я имею ввиду команду OUT 0CH
    поскольку у Лебедева 8 раз прописана OUT 0CH (для надёжности т.к. некоторые Векторы имели плохую запись в ОЗУ цветогенератора)
    в тоже время у Черезова всего лишь 3 раза OUT 0CH
    а просматривая исходники других авторов я видел даже 2 раза OUT 0CH
    Если глянуть исходники МДОС Т-72, то там палитру тоже устанавливали за два раза, но между ними была небольшая задержка:
    Код:
    	...
    L_F613:	OUT     00Ch	; палитра -- установка физического цвета
    	PUSH PSW
    	POP  PSW
    	PUSH PSW
    	POP  PSW
    	DCR  E
    	DCR  D		; (счётчик -1)
    	OUT     00Ch	; палитра -- установка физического цвета, ещё раз
    	...
    Думаю, такой вариант можно считать оптимальным и по скорости, и по объёму.

    Цитата Сообщение от metamorpho Посмотреть сообщение
    Ещё вопрос, что будет если квазидиск подключен, а в коде вот этих начальных настроек нету, будет ли это мешать исполнению программы ?
    XRA A ;ВЫКЛ. ОЗУ КВАЗИДИСКА.
    OUT 10H
    Все ПЗУ на Векторах, как правило, имели при запуске команду отключения КД. Кроме того, квази-диск отключает БЛК-СБР -- там это сделано аппаратно, таким образом, если демку будут запускать, например, загрузкой "с ленты", или из загрузочной записи дискеты, то можно этот момент пропустить, а если из под МДОСа -- то эти команды обязательны.
    Последний раз редактировалось Improver; 18.11.2021 в 17:24.

  16. Эти 2 пользователя(ей) поблагодарили Improver за это полезное сообщение:

    metamorpho (18.11.2021), parallelno (01.07.2022)

Страница 22 из 32 ПерваяПервая ... 181920212223242526 ... ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Вычисление числа Пи на ассемблере
    от perestoronin в разделе Разное
    Ответов: 311
    Последнее: 12.02.2024, 17:12
  2. Ответов: 275
    Последнее: 16.12.2018, 23:01
  3. try-catch на ассемблере z80
    от siril в разделе Программирование
    Ответов: 22
    Последнее: 30.10.2012, 21:17
  4. Продам книгу- AMIGA: программирование на ассемблере
    от Doctor Max в разделе Барахолка (архив)
    Ответов: 11
    Последнее: 01.03.2012, 00:35
  5. Подпрограмма на ассемблере в памяти?
    от jimled в разделе Программирование
    Ответов: 1
    Последнее: 29.11.2009, 06:46

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •