User Tag List

Страница 56 из 67 ПерваяПервая ... 525354555657585960 ... ПоследняяПоследняя
Показано с 551 по 560 из 666

Тема: Портирование игры "Last Mission" на УКНЦ

  1. #551

    Регистрация
    22.03.2018
    Адрес
    г. Усть-Каменогорск, Казахстан
    Сообщений
    1,410
    Спасибо Благодарностей отдано 
    91
    Спасибо Благодарностей получено 
    178
    Поблагодарили
    138 сообщений
    Mentioned
    21 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Попробовал на танке покататься:
    https://yadi.sk/d/XLyQ-qbc_17P5w

    Нужно думать как ускорять (хотя циклы вывода уже развернуты). Можно попробовать засунуть танк в ПП (заранее сдвинув спрайты).
    БK 0010-01, БК 11М, БК11М+,МС 0511 (УКНЦ)х3, Atari 65XE, Commodore 64, AMIGA 500 (HDD), ZX EVO

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

    hobot(30.04.2020)

  2. #552

    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    14,403
    Спасибо Благодарностей отдано 
    1,703
    Спасибо Благодарностей получено 
    2,223
    Поблагодарили
    875 сообщений
    Mentioned
    69 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Когда выезжаешь из первой комнаты, и возвращаешься, левый нижний угол комнаты портится.

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

    hobot(30.04.2020)

  3. #553

    Регистрация
    22.03.2018
    Адрес
    г. Усть-Каменогорск, Казахстан
    Сообщений
    1,410
    Спасибо Благодарностей отдано 
    91
    Спасибо Благодарностей получено 
    178
    Поблагодарили
    138 сообщений
    Mentioned
    21 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Я в курсе. Этож только для прикидки делалось, чтобы ресурсоемкость определить.. танк все равно убирать придется в ПП.
    БK 0010-01, БК 11М, БК11М+,МС 0511 (УКНЦ)х3, Atari 65XE, Commodore 64, AMIGA 500 (HDD), ZX EVO

  4. #554

    Регистрация
    22.03.2018
    Адрес
    г. Усть-Каменогорск, Казахстан
    Сообщений
    1,410
    Спасибо Благодарностей отдано 
    91
    Спасибо Благодарностей получено 
    178
    Поблагодарили
    138 сообщений
    Mentioned
    21 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Кстати в оригинале есть такая "подлость", что можно самому по запарке подстрелить свой танк (тогда начнешь все с начала), стоит ли оставлять?

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

    О великие ГУРУ УКНЦ, спуститесь наконец с "микросхемных небес" и объясните мне тупому как быть..
    (мы работаем в адресном пространстве ЦП)
    Всем понятная ситуация (кто пробовал рисовать по вектору 100).. когда пришло прерывание, нужно отключить таймер чтобы не начал повторно рисовать (если не успел)..
    Варианты.. попросить через терминал, свой обработчик в ПП... медленные, получаются глюки.
    С отрубанием MTPS работает, но дергано и (при переходе в другую локацию)... стирает не там.. (это к сообщению Titus выше).. (успеть нарисовать за ход луча не вариант, итак уже рисуем чет-нечет, скорости разные (на единичку) чтобы в кадр попадало как можно меньше объектов)

    Как бы вы справились с подобной ситуацией? (Или УКНЦ сделана для работы только с RT-11 и только для совместимости с терминалами и для работы с софтом который стырили у DEC? )

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

    Это я к чему... если вырубить таймер то анимация будет гораздо плавнее, а не рывками с пропусками больших кусков кода по MTPS.
    БK 0010-01, БК 11М, БК11М+,МС 0511 (УКНЦ)х3, Atari 65XE, Commodore 64, AMIGA 500 (HDD), ZX EVO

  5. #555

    Регистрация
    30.11.2015
    Адрес
    г. Самара
    Сообщений
    7,509
    Спасибо Благодарностей отдано 
    344
    Спасибо Благодарностей получено 
    714
    Поблагодарили
    596 сообщений
    Mentioned
    13 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от S_V_B Посмотреть сообщение
    когда пришло прерывание, нужно отключить таймер чтобы не начал повторно рисовать (если не успел)..
    Классический подход при работе с прерываниями на архитектуре PDP-11 - обработчик прерывания начинает работать на уровне приоритета устройства (точнее - на том, что загрузилось в PSW из слова вектор_прерывания_+_2) и, по рекомендациям DEC, на выполнение работы у него есть с десяток команд процессора. Напоминаю, PDP-11 проектировались, в том числе, для создания систем реального времени. Если обработчик прерывания не успел сделать свою работу, то, по хорошему, должна быть очередь для обработки таких (отложенных) прерываний, соответственно, запрос на продолжение работы ставится в эту очередь и обработчик завершает свою работу. После того, как ВСЕ активные запросы на прерывания будут обработаны или поставлены в очередь - начинается выборка заданий из очереди - и доделывание работы.

    С учётом того, что твоя игрушка - по сути система реального времени (к примеру, отрисовка в обработчике прерывания заняла 2 секунды - на 2 секунды игра застыла и не реагирует, скажем, на прерывания от клавиатуры) - или хайли оптимизировать обработчик прерывания от таймера или переходить на выше описанный вариант или высчитывать синхронизацию разных действий (с очень небольшим количеством выполняемых команд) с точностью до команды.

    И в третьем случае:
    Код:
     mov #100., r1
    10$:
      sob r1, 10$
    - это 101, а не 2 команды.

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

    Цитата Сообщение от S_V_B Посмотреть сообщение
    УКНЦ сделана
    в соответствии со стандартной архитектурой PDP-11 и на ней будет работать всё, что написано под эту архитектуру. Именно поэтому перенос на неё, скажем, RT-11 - тривиален, в отличии от, скажем, БК

  6. #556

    Регистрация
    22.03.2018
    Адрес
    г. Усть-Каменогорск, Казахстан
    Сообщений
    1,410
    Спасибо Благодарностей отдано 
    91
    Спасибо Благодарностей получено 
    178
    Поблагодарили
    138 сообщений
    Mentioned
    21 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

    Цитата Сообщение от Hunta Посмотреть сообщение
    игра застыла и не реагирует, скажем, на прерывания от клавиатуры)
    это находится в другом адресном пространстве.. и насколько я понял в ЦП полезных прерываний нет.. поэтому и работает при MTPS #200

    Вопрос в другом как у этого "котопса" выключить быстро таймер у пса если это можно сделать только попросив кота?

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

    Да к стати я придумал кличку для УКНЦ -"КОТОПЕС ". (ORR)
    БK 0010-01, БК 11М, БК11М+,МС 0511 (УКНЦ)х3, Atari 65XE, Commodore 64, AMIGA 500 (HDD), ZX EVO

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

  8. #557

    Регистрация
    30.11.2015
    Адрес
    г. Самара
    Сообщений
    7,509
    Спасибо Благодарностей отдано 
    344
    Спасибо Благодарностей получено 
    714
    Поблагодарили
    596 сообщений
    Mentioned
    13 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от S_V_B Посмотреть сообщение
    Не заметил очереди
    Обычно эту работу берёт на себя операционка. И по большей части этот механизм сделан для драйверов. Но в RSX есть API и для программ, но он несколько более (для программ /PR:5) или более замороченный (для программ /PR:0). И ЕМНИП, что то есть и в RT.

    Или же программа сама реализует (похожий) механизм.

    Цитата Сообщение от S_V_B Посмотреть сообщение
    и насколько я понял в ЦП полезных прерываний нет
    Прерывание от клавиатуры и вывода на экран (177560-177566), прерывание от С2, по идее - прерывание от MZ, вектор 4, вектор 10 - это как минимум.

    Цитата Сообщение от S_V_B Посмотреть сообщение
    выключить быстро таймер
    MTPS #200

    Быстрее - нет. Это - логическая маскировка. Физическая маскировка (нет на УК-НЦ) -- BIC #100, @#177546. Почему маскировка. Таймер каждые 0.02 с выставляет запрос на прерывание. В этот механизм разрешение или запрет никак не вмешивается. То есть, если за 0.0000000001с до выставления запроса включить разрешение - от через 0.0000000001 с прилетит прерывание. А не через 0.02 с

  9. #558

    Регистрация
    22.03.2018
    Адрес
    г. Усть-Каменогорск, Казахстан
    Сообщений
    1,410
    Спасибо Благодарностей отдано 
    91
    Спасибо Благодарностей получено 
    178
    Поблагодарили
    138 сообщений
    Mentioned
    21 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Hunta Посмотреть сообщение
    Прерывание от клавиатуры и вывода на экран (177560-177566), прерывание от С2, по идее - прерывание от MZ, вектор 4, вектор 10 - это как минимум.
    Все в периферийном поцесссре.. и ни как нас не касается (КОТОПЕС)

    Цитата Сообщение от Hunta Посмотреть сообщение
    MTPS #200
    MTPS #340 - на УКНЦ не должен работать, хотя во всех книжках пишут именно так.
    БK 0010-01, БК 11М, БК11М+,МС 0511 (УКНЦ)х3, Atari 65XE, Commodore 64, AMIGA 500 (HDD), ZX EVO

  10. #559

    Регистрация
    30.11.2015
    Адрес
    г. Самара
    Сообщений
    7,509
    Спасибо Благодарностей отдано 
    344
    Спасибо Благодарностей получено 
    714
    Поблагодарили
    596 сообщений
    Mentioned
    13 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от S_V_B Посмотреть сообщение
    Все в периферийном поцесссре.. и ни как нас не касается (КОТОПЕС)
    Какая разница где - механизм прерываний и их обработка одинаков.

    Цитата Сообщение от S_V_B Посмотреть сообщение
    MTPS #340 - на УКНЦ не должен работать, хотя во всех книжках пишут именно так.
    Отработает любая команда MTPS #байт. И выставится любой приоритет процессора от 0 до 7. Просто снаружи возможен запрос только с пятым приоритетом, так что или выставить приоритет от 0 до 4 - и тогда снаружи прилетит, или от 5 до 7 - и тогда запросы снаружи игнорируются.

  11. #560

    Регистрация
    22.03.2018
    Адрес
    г. Усть-Каменогорск, Казахстан
    Сообщений
    1,410
    Спасибо Благодарностей отдано 
    91
    Спасибо Благодарностей получено 
    178
    Поблагодарили
    138 сообщений
    Mentioned
    21 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Быстрее работающий ЦП.. никак не может на это повлиять... ну не верю... вы же под микроскопом смотрели... должна быть какая-то ячейка при обнулении которой таймер останавливается.. за 3 такта.. (шучу конечно)

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

    Цитата Сообщение от Hunta Посмотреть сообщение
    Какая разница где - механизм прерываний и их обработка одинаков.
    Не забывай - два процессора - две разные машинки.
    И ПП разрешает прерываться по 100му ЦП.
    БK 0010-01, БК 11М, БК11М+,МС 0511 (УКНЦ)х3, Atari 65XE, Commodore 64, AMIGA 500 (HDD), ZX EVO

Страница 56 из 67 ПерваяПервая ... 525354555657585960 ... ПоследняяПоследняя

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

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

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

Похожие темы

  1. Портирование Lode Runner БК->УКНЦ
    от nzeemin в разделе ДВК, УКНЦ
    Ответов: 103
    Последнее: 12.12.2020, 04:04
  2. "Ресурсы УКНЦ" Влада Жигалова
    от nzeemin в разделе ДВК, УКНЦ
    Ответов: 45
    Последнее: 08.07.2018, 11:57
  3. Ответов: 17
    Последнее: 26.12.2015, 23:22
  4. Ответов: 0
    Последнее: 15.08.2010, 14:38
  5. Ответов: 4
    Последнее: 06.01.2009, 00:08

Ваши права

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