User Tag List

Страница 13 из 37 ПерваяПервая ... 91011121314151617 ... ПоследняяПоследняя
Показано с 121 по 130 из 361

Тема: Секреты и трюки программирования (в том числе и игр) для РК-86

  1. #121

    Регистрация
    05.10.2016
    Адрес
    г. Санкт-Петербург
    Сообщений
    1,080
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    5
    Поблагодарили
    5 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от jerri
    если у разных плат разная скорость исполнения фрейма, то как вы вообще программы пишите?
    Как раз разная. Если я правильно понял под незнакомым термином "скорость исполнения фрейма" - время прогона какой-то процедуры для работы с экраном.

    Почти все грамотные пользователи РК86 используют турбирование по схеме из ж.РАДИО 01.1991, стр.38. При этом меняется кварц у ГФ24 с 16 МГЦ на 27 МГЦ, а для питания ВГ75 (и счётчика точек в знакоместе ИЕ4) такт сохраняется прежним. Для чего ставится простейший генератор на 531ЛН1 с старым кварцем 16 МГЦ. После переделки КР580 тактируется тактом 27:9=3 МГЦ и ВТ57 тактируется тем же повышенным тактом 3 МГЦ. Хотя, т.к в системе всё работает асинхронно, можно и для ВТ57 поставить отдельный генератор и тактировать его ещё более высоким тактом (например 3.5 МГЦ), тогда ПДП будет заполнять буфер ВГ75 ещё быстрее и скорость CPU дополнительно возрастёт.

    В общем, после замены такта КР580 выигрыш больше, чем в число раз соотношений тактов 3:1.77= ~1.7 раза. А выигрыш примерно вдвое. А если поставить буфер на ОЗУ РУ5, то КР580 потянет такт до 3.5 МГЦ. Тогда РК86 почти сравняется в скорости с ZX-Spectrum.

    ГФ24 с высокочастотными кварцами заводится только, если последовательно с кварцем ставить очень маленькую ёмкость в 3-5 пф.

    Цитата Сообщение от Pyk
    А расчет по тактам такой:
    (74 симв/стр + 4 символа ССИ) * (30 строк * 10 скан-линий) = 24.180 тактов ВГ75
    Вообще-то (74+4) * (30*10)= 23.400.

    Т.е слева уравнения ошибка, а вот результат правильный. 30 строк это на экране, а ещё есть расход в одну строку на обратный ход по кадрам. Строк должно быть 31, чтобы число строчных периодов в кадре было 310 (что довольно близко к стандарту в 312.5). И если подставить слева 31 вместо 30, то и получится 24.180.

    Но термин неверный. Не тактов ВГ75 (у неё такт 8 МГЦ), а времён вывода знакоместа шириной 6 точек тактом 8 МГЦ , что равно 6:8= 0.75 МКСЕК. Это время сколько выводится одно знакоместо.

    Цитата Сообщение от Pyk
    24180 * 4/3 = 32240 - тактов процессора
    Не понял почему это так. Ведь такт ВГ75 - 8 МГЦ, а такт процессора - 1.77 МГЦ.

    Число тактов процессора приходящихся на период кадра я бы посчитал так;

    (74+4) *31*10 * 0.75 = 18.135 МСЕК (это у Вас неверный режим, кадровый период д.быть 20 МСЕК).

    И число машинных тактов CPU в кадре: 18135 : (1:1.77)= 32098. А не 32240 !

    Цитата Сообщение от HardWareMan
    ПДП + ВГ75 делают ту же работу, что и канал #0 первого ПДП у IBM PC. Сам догадаешься, или подсказать?
    Пожалуйста, подскажите. Если мне не изменяет память, там это прерывание от таймера.
    Последний раз редактировалось barsik; 19.03.2017 в 13:19.

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

  3. #122

    Регистрация
    05.04.2013
    Адрес
    Починки, Нижегородская обл.
    Сообщений
    1,371
    Спасибо Благодарностей отдано 
    401
    Спасибо Благодарностей получено 
    647
    Поблагодарили
    255 сообщений
    Mentioned
    26 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от barsik Посмотреть сообщение
    Т.е слева уравнения ошибка, а вот результат правильный.
    Опечатался. Добавил "+ 1" в исходное сообщение

    Цитата Сообщение от barsik Посмотреть сообщение
    Не тактов ВГ75 (у неё такт 8 МГЦ)
    На сам кристалл подается 1,333 МГц = 8/6

    Цитата Сообщение от barsik Посмотреть сообщение
    (74+4) *31*10 * 0.75 = 18.135 МСЕК (это у Вас неверный режим, кадровый период д.быть 20 МСЕК).
    Ну да, потому у uart и сбилась синхронизация при тесте на телевизоре.

    Цитата Сообщение от barsik Посмотреть сообщение
    18135 : (1:1.77)= 32098. А не 32240 !
    А если вместо 1,77 взять 1,777778, будет 32240

  4. #123
    HardWareMan
    Гость

    По умолчанию

    Цитата Сообщение от barsik Посмотреть сообщение
    Цитата Сообщение от HardWareMan Посмотреть сообщение
    ПДП+ВГ75 делают ту же работу, что и канал #0 первого ПДП у IBM PC. Сам догадаешься, или подсказать?
    Пожалуйста, подскажите. Если мне не изменяет память, там это прерывание от таймера.
    Прерывание? У ПДП? Закусывать надо! Но отчасти вы правы: один из каналов таймера действительно подан на #0 канал первого ПДП. Для периодической генерации запроса ПДП.

  5. #124

    Регистрация
    25.02.2017
    Адрес
    г. Рязань
    Сообщений
    62
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    вопрос к barsik

    Вы несколько раз упомянули компилятор pl/m для 8080.
    есть ли какой нить мануал - как написать хеловорд.rk, к примеру?
    хотелось бы что то по типу http://zx-pk.ru/threads/10442-pishem...ulyatorom.html
    заранее благодарен

  6. #125

    Регистрация
    01.03.2005
    Адрес
    Samara
    Сообщений
    4,866
    Спасибо Благодарностей отдано 
    328
    Спасибо Благодарностей получено 
    310
    Поблагодарили
    234 сообщений
    Mentioned
    12 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от OrionExt Посмотреть сообщение
    NEO SPECTRUMAN.
    С высоты годов легко критиковать любую платформу. Особенно «свежим взглядом». Пример РК86 – Спектрум.
    конечно критиковать. просто по своему опыту для написания игры выработал ряд требований
    начинаешь задавать вопросы окружающим с колоссальным опытом написания игр на данную платформу и что слышишь в ответ?
    найди журнал за 86 год там где-то было что-то рассказано как делать через монитор.

    начинаешь разбираться и понимаешь что за 30 лет никто никакой систематизации знаний не производил.
    уровень игр рос мягко говоря не сильно и остался практически на том же уровне.

    так что критикуем не платформу. критикуем систему.

    Можно выбрать такт (кварца) - для системы (эмулятор). Будем ловить вайты, хоть бы M1 (Z80). Да не лесом. ДА ну нафиг. Сейчас изучаю MSX. Понятие фреймов (константа) – это что такое? Блин=)
    фрейм, меряется в тактах процессора - это процессорное время выполнения отрисовки экрана от начала экрана до начала экрана
    на фирменном 48к спектруме это 69888 тактов процессорного времени или 17472 простых команд.
    скорость освежения игры часто измеряет во фреймах - чем выше фреймрейт (больше кадров в секунду отрисовывается) тем глаже смотрится анимация в игре.

    50 фпс игры - Kolobok Zoom, Pussy
    25 фпс - firefly, batman

    низкий фреймрейт Sirwood
    С уважением,
    Jerri / Red Triangle.

  7. #126

    Регистрация
    22.05.2011
    Адрес
    г. Дзержинск, Украина
    Сообщений
    6,829
    Спасибо Благодарностей отдано 
    483
    Спасибо Благодарностей получено 
    663
    Поблагодарили
    513 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от jerri Посмотреть сообщение
    фрейм, меряется в тактах процессора
    в данном случае все немножко сложнее

    это комп с произвольным фрейм рейтом
    для zx80 все что нужно знать что в строке 207 тактов
    тут же все сложней

    если число символов в строке приведет к повышению частоты строчников
    то вообще для каждого режима будут свои времянки
    и хорошо если в каждой строке\строке знакомест задержки будут повторяться в одном и том же мести
    а если они будут уплывать?

    хотя по моему все это осуществимо



    если у разных плат разная скорость исполнения фрейма
    да так и есть
    тк строили\строят другие клоны РК и запихивают их в fpga ничего не понимая во времянках и как они влияют на совместимость


    НО каноничная плата только одна!
    и все микрухи там от одного кварца
    так что полноценная эмуляция возможна!

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


    спеки тоже разные
    и времянки на них тоже
    но все фирменные и наиболее значимые эмулируются! (так же вспоминаем галочку late timings)
    достаточно точно


    +нам еще помогает то что в РК можно хоть как то синхронизироваться с кадровым синхроимпульсом
    если высчитать количество тактов в каждом фрейме для каждого режима
    то можно будет сделать выравнивание на первый такт
    и пилить всякие мультиколоры эффекты

    к сожалению против нас то что строка читается в буфер (я так понимаю) один раз за строку... или нет????
    но если после сброса вг75 генерирует сразу строчники а не кадровый синхроимпульс
    то думаю вполне можно будет выжать pseudo hires
    или повысить разрешение по вертикали в 4 раза для псевдо графики
    (делать сброс и менять адрес в ПДП каждую строку)
    только хватит у РК тактов на это???

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

    Цитата Сообщение от HardWareMan Посмотреть сообщение
    Прерывание? У ПДП? Закусывать надо!
    да чавото в нашей документации там где всякие ПЭВМ
    оно так называется...

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

    Цитата Сообщение от jerri Посмотреть сообщение
    С высоты годов легко критиковать любую платформу.
    да я ее особо и не критикую
    я как раз и говорю
    что какая платформа сделана такая она уже и есть
    а уже напаивать сверху что то поздно...

    я критикую недалекость документации
    и постоянные ссыпания на ПЗУ\драйвер (что недопустимо для такой медленной машины)
    ну и крайне слабое программное обеспечение

    Цитата Сообщение от jerri Посмотреть сообщение
    С высоты годов легко критиковать любую платформу
    так я не вижу нового более прогресивного софта
    на других платформах все развивается...
    ...хотя на РК наконец началась демосцена хоть какаято

    вон на chip8 запилен простенький движок вульфа
    занимает он полтора килобайта (несмотря на дикую прожорливость кода chip8)
    для работы ему нужно исполнять 50000 команд в секунду
    1777777/50000=35,55554
    за 35 тактов(даже с учетом замедления) на нативном коде вполне можно сделать и даже лучше...

    У РК можно свободно менять адрес лежания видео памяти
    вообще можно запилить(в отличии от спека) тройную буферизацию...
    Последний раз редактировалось NEO SPECTRUMAN; 14.03.2017 в 13:36.

  8. #127

    Регистрация
    31.01.2007
    Адрес
    Москва
    Сообщений
    810
    Спасибо Благодарностей отдано 
    11
    Спасибо Благодарностей получено 
    77
    Поблагодарили
    59 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Из того что более менее понятно, но правильно ли ???
    pixclk Пиксельклок 8Мгц
    crtclk pixclk/6 i8275 клок 1.(3)Мгц
    cpuclk pixclk/9*2 ??? i8080 клок 1.(7) Мгц
    Времянки кадра в зависимости от настроек i8275. Для себя выбрал 68/16 36/4 6х8 вроде максимально соответствуют стандарту.
    Каждое чтение i8257 дает 4 (?) такта вейта (или как он тут называется) на i8080, все задержки вроде прогнозируемы.
    Строчный сброс i8275 как то уж очень экстремально выглядит, да и как в этом случае вертикальный бланк делать не ясно, а вот переинициализация i8257 каждый ряд вроде как реальна, вертикальный зумер или волны можно сделать.

  9. #128

    Регистрация
    22.05.2011
    Адрес
    г. Дзержинск, Украина
    Сообщений
    6,829
    Спасибо Благодарностей отдано 
    483
    Спасибо Благодарностей получено 
    663
    Поблагодарили
    513 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от barsik Посмотреть сообщение
    Но термин неверный. Не тактов ВГ75 (у неё такт 8 МГЦ), а времён вывода знакоместа шириной 6 точек тактом 8 МГЦ , что равно 6:8= 0.75 МКСЕК. Это время сколько выводится одно знакоместо.
    на нее идет только один Character Clock с частотой кварц/9/12
    вот это и есть её такты
    частота низкая правда 16460,898148148148148148148148148

    за один такт ВГ75 проходит 12 тактов проца (хорошое кратное число для z80 как по мне(на Atari 2600 с кратностью уже проблемы...))

    не будет ли это значить что ВГ75 своей не поворотливостью будет еще больше тормозить проц


    я надеюсь что DMA снимет hold как только прочитает все что нужно
    и не будет ничего ожидать от ВГ75

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

    Цитата Сообщение от krt17 Посмотреть сообщение
    Каждое чтение i8257 дает 4 (?) такта вейта (или как он тут называется) на i8080, все задержки вроде прогнозируемы.
    они прогнозируемые

    ТЫ МНЕ ПОКАЖИ ГДЕ ЛЕЖИТ ИХ СПИСОК И ОПИСАНИЕ
    а не то что они прогнозируемые

    и без знаков вопроса

    и на 4 такта кого она будет вейтить проц??

    ага у DMA вроде такая же частота как у проца

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

    Цитата Сообщение от krt17 Посмотреть сообщение
    Времянки кадра в зависимости от настроек i8275
    в этом как раз и есть проблема
    что нужно рассчитывать все задержки для каждого режима
    а эмулятору нужно эмулировать телевизор....
    Последний раз редактировалось NEO SPECTRUMAN; 14.03.2017 в 17:46.

  10. #129

    Регистрация
    31.01.2007
    Адрес
    Москва
    Сообщений
    810
    Спасибо Благодарностей отдано 
    11
    Спасибо Благодарностей получено 
    77
    Поблагодарили
    59 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от NEO SPECTRUMAN Посмотреть сообщение
    в этом как раз и есть проблема
    Проблемы не вижу, заканчиваем истерить.

  11. #130

    Регистрация
    22.05.2011
    Адрес
    г. Дзержинск, Украина
    Сообщений
    6,829
    Спасибо Благодарностей отдано 
    483
    Спасибо Благодарностей получено 
    663
    Поблагодарили
    513 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от krt17 Посмотреть сообщение
    Пиксельклок 8Мгц
    а что там на пиксельклоке вообще фиолетово
    тк все пляшет от Character Clock-а и клока DMA с процом

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

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

    DMA может перекидывать до 16К памяти
    без перепрограммирования
    крута!

    а что будет если включить ВГ75 но не включать DMA
    оно не будет кидать какой нибудь мусор на экран?

    DU (DMA Underrun) — этот флаг устанавливается при потере данных во время процесса ПДП. В этом случае процесс ПДП прерывается и экран затемняется после кадрового синхроимпульса. Сбрасывается после чтения регистра статуса.
    не совсем понятно

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

    Цитата Сообщение от NEO SPECTRUMAN Посмотреть сообщение
    в моем понимании
    Регенерация содержимого ОЗУ осуществляется подачей сигнала RAS с перебором всех 128 возможных состояний адреса, период регенерации не должен был превышать
    когда ДМА успевает перебрать все 100% ??
    тем более непонятно как тогда регенерируются вторые 16к памяти
    Последний раз редактировалось NEO SPECTRUMAN; 14.03.2017 в 14:24.

Страница 13 из 37 ПерваяПервая ... 91011121314151617 ... ПоследняяПоследняя

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

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

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

Похожие темы

  1. Ответов: 210
    Последнее: 26.07.2019, 11:45
  2. Ответов: 6
    Последнее: 07.02.2016, 11:55
  3. Трюки с контроллером FDD 82077
    от Titus в разделе Утилиты
    Ответов: 4
    Последнее: 10.06.2011, 19:17

Ваши права

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