User Tag List

Показано с 1 по 10 из 443

Тема: Пишу шедевр для «Вектора 06Ц»

Древовидный режим

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #10

    Регистрация
    01.03.2005
    Адрес
    Samara
    Сообщений
    4,909
    Спасибо Благодарностей отдано 
    350
    Спасибо Благодарностей получено 
    322
    Поблагодарили
    246 сообщений
    Mentioned
    13 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от metamorpho Посмотреть сообщение
    Пытаюсь вникнуть как работает этот метод.
    Похоже я несовсем правильно понял,
    но насколько я понял подпрограмма рисования спрайта (от Jerri)
    связана с программой обработки прерываний, в которую каким то образом должен быть
    внедрён следующий код (это с моим переводом на Векторовский формат ассемблера):

    Скрытый текст


    ;процедура обработки прерывания с восстановлением поврежденных данных
    ;при доступе к стеку
    ;регистровая пара для доступа к стеку BC
    im_routine
    di ; di
    ;сохраняем HL и забираем адрес возврата из прерывания
    xthl ; ex (sp),hl
    ;сохраняем его
    shld im_ret ; ld (im_ret),hl
    ;забираем HL
    pop h ; pop hl
    ;сохраняем его чтобы не потерять при манипуляциях с SP
    shld im_hl ; ld (im_hl),hl
    ;сохраняем флаги
    push psw ; push af
    ;вычисляем корректный адрес стека программы
    lxi h,2 ; ld hl,2
    dad sp ; add hl,sp
    ;сохраняем стек программы
    shld im_sp ; ld (im_sp),hl
    pop psw ; pop af
    ;восстановлением поврежденые данные регистром BC
    push b ; push bc

    ;задаем стек прерывания
    lxi sp,im_stek ; ld sp,im_stek
    ;сохраняем все регистры кроме HL
    push psw ; push af,bc,de
    push b
    push d
    ;-----------------------------
    ;ISR
    ;здесь прерывание
    ;-----------------------------
    ;восстанавливаем регистры
    pop d ; pop de,bc,af
    pop b
    pop psw
    ;восстанавливаем HL
    lxi h,2121h ; ld hl,#2121

    im_hl: equ $-2
    ;восстанавливаем стек
    lxi sp,3131h ; ld sp,#3131
    im_sp: equ $-2
    ei ;ei
    ;возвращаемся из обработки прерывания
    jmp 0c3c3h ; jp #c3c3
    im_ret: equ $-2
    [свернуть]


    В этом коде мне не понятны следующие моменты:

    - разве правильно во время прерывания сделать запрет командой DI ?
    возможно не нужно, не знаю как Вектор обрабатывает прерывания

    - что такое ISR ?
    interrupt sub routine

    обработка прерывания

    - что имеется ввиду в строке ";здесь прерывание" какое прерывание ?
    имеется ввиду "здесь обрабатываем прерывание"


    - lxi sp,3131h ;
    im_sp: equ $-2 ; !!!???? разве здесь не споткнётся программа, зачем данные стоят между командами кода - ведь это транслируются в код каких-то команд ?
    нет, потому что метка указывает на данные заносимые в регистр стека

    ei
    - jmp 0c3c3h ; jp #c3c3 ; почему выход не по RET, а скачок в экранную память ?
    im_ret equ $-2
    это не скачок в экранную память, здесь подставляется адрес возврата

    и происходит прыжок на продолжение выполнения кода

    - как и куда внедрить этот код ?
    это процедура обработки прерывания.

    - - - Добавлено - - -

    Цитата Сообщение от metamorpho Посмотреть сообщение
    Если это так, тогда справедливо к тактам программы вывода спрайта (по методу Jerri) прибавить такты (время) затраченные на обработку-восстановление стека (по методу Jerri) в прерывании ?
    Но как правильно это можно посчитать ?
    Это к тому чтобы точно понять насколько вариант от Jerri быстрее.
    кстати вот тебе визуализация того о чем я говорю все время.



    шторка высотой 24 скрывает спрайты уходящие вверх и вниз.
    и часть лабиринта.

    справа ты видишь вариант 1 = мой вариант хранения спрайта - линейный по 3м битпланам
    вариант 2 более быстрый по отрисовке но более геморойный в хранении спрайта.

    и также нацарапана вероятность появления марцания.

    но если ее посмотреть наложив на весь растр - она ничтожна.
    луч должен в строго определенное время быть в определенном месте.
    как то так.


    Нажмите на изображение для увеличения. 

Название:	IMG_20200803_124604.jpg 
Просмотров:	213 
Размер:	48.9 Кб 
ID:	73206
    С уважением,
    Jerri / Red Triangle.

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

    metamorpho(03.08.2020)

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

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

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

Похожие темы

  1. Бейсики для Вектора-06Ц и клонов
    от ivagor в разделе Вектор
    Ответов: 696
    Последнее: 25.10.2025, 02:34
  2. Картотека ПО для Вектора-06ц
    от svofski в разделе Вектор
    Ответов: 719
    Последнее: 04.04.2024, 11:13
  3. Восстановление Вектора-06ц
    от Daniil Chislov 86 в разделе Вектор
    Ответов: 100
    Последнее: 11.03.2021, 00:23
  4. Ответов: 198
    Последнее: 26.04.2020, 13:05
  5. Ответов: 58
    Последнее: 06.07.2019, 23:56

Ваши права

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