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

User Tag List

Страница 3 из 36 ПерваяПервая 1234567 ... ПоследняяПоследняя
Показано с 21 по 30 из 353

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

  1. #21
    Master Аватар для barsik
    Регистрация
    05.10.2016
    Адрес
    г. Санкт-Петербург
    Сообщений
    724
    Благодарностей: 200
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от jerri
    барсик определенно железячник раз всё мерит в МСЕК и верит что прерывания от дьявола
    В чём мерить время - личное дело каждого.

    Время меряют в секундах, короткое время в миллисекундах. И с чего такой шум из-за того в чём мерить интервалы времени. На мой взгляд мерить надо всегда в секундах, т.к в тактах мерить неверно, из-за того что такт в разных компьютерах разный. У меня в 8-ми платах ОРИОНА и в 4-х платах СПЕЦИАЛИСТА везде такты CPU разные, но время обратного хода луча по кадрам везде 3.6 МСЕК. И как же тут мерить время в тактах? И кроме того время-то я считал из тех же машинных тактов и частоты CPU.

    Речь шла именно о константе, независящей от железа - время обратного хода луча по кадрам. Которое в СПЕЦИАЛИСТЕ, ОРИОНЕ и РК86 отнимает равно 3.6 МСЕК из кадрового периода в 20 МСЕК. Так что я был абсолютно прав, считая время в милисекундах. Глупо считать время в машинных тактах, тогда надо одновременно указывать и такт.

    Прерывания в темах РК вообще под запретом, потому что их нет. Вам, кажется нечем заняться, вот Вы и организовываете флейм, просто придираясь к каждой фразе. Скучно стало на Синклере. Это не удивляет. Переходите на РК86.

    А прерывания я не использую. Заглушил их во всех платах ОРИОНА, а в ИРИШЕ, с целью экономии электроэнергии вытащил ВН59 из панельки. Для привязки к времени мне хватало меандра 5 ГЦ на входе магнитофона. Прерывания не нужны, это знает любой владелец РК86. А железом я не увлекаюсь, точнее наоборот, - паяю только вынужденно, без этого при самодельном компьютере не обойтись.

    И не понял при чём здесь стек?

    И как сделать чересстрочную развертку? И что она даст? Кроме падения яркости?

    Я в 1993 делал так. Мне надо было посмотреть 4-х плоскостные картинки С.Коровкина из Ижевска. У него в ОРИОНЕ 4-ре экранные плоскости (т.наз. 4-х плоскостный цвет, каждая точка любого из 16-ти цветов). А у меня только 2 плоскости. Тогда я поставил ТМ2, заведя на него КСИ, по каждому кадру ТМ2 переключался. И выход ТМ2 завел на бит номер экрана. При 0 выводился экран с 0000, при 1 с экран с 8000. 2 плоскости в 4-х цветном режиме, когда 2 бита, по одному из каждой плоскости дают яркость точки. Обычный режим 50 ГЦ. А у меня получился вывод с 4-х плоскостей, но с частотой 25 ГЦ. Один кадр с одного экрана, следующий с другого. Пришлось также чуть изменить видеовыход, чтобы были разные яркости с разных экранов. Получилась чересстрочная развёртка без сдвига на полстроки. Яркость картики заметно упала, но я видел цветную картинку в 16-ти цветах (в градациях яркости, не было цветного дисплея).

    Цитата Сообщение от NEO SPECTRUMAN
    еще на прерываниях можно легко запилить всякую многозадачность
    Очень смешно. Для РК86, где у пользователей нет даже CP/M, только не хватало многозадачной многобанковой ДОС реального времени с кучей одновременно работающих процессов.
    Последний раз редактировалось barsik; 10.03.2017 в 01:09.

  2. #22
    Guru Аватар для jerri
    Регистрация
    01.03.2005
    Адрес
    Samara
    Сообщений
    3,298
    Благодарностей: 691
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    barsik, сколько раз в секунду луч пробегает по экрану?
    С уважением,
    Jerri / Red Triangle.
    [02.05.2014] не забудь этот день. Чубайс должен умереть. Dixi.
    [l'Abbey des morts TSEvo EV...5%] kiwi кошелек +79178162712

  3. #23
    Veteran Аватар для NEO SPECTRUMAN
    Регистрация
    22.05.2011
    Адрес
    Дзержинск
    Сообщений
    1,984
    Благодарностей: 359
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от barsik Посмотреть сообщение
    Время меряют в секундах, короткое время в миллисекундах. И с чего такой шум из-за того в чём мерить интервалы времени. На мой взгляд мерить надо всегда в секундах, т.к в тактах мерить неверно, из-за того что такт в разных компьютерах разный.
    вот как раз изза того что такт разный
    на каждом компе за одно и то же время МСЕК разное количество тактов (даже на одинаковых компах тк кварц не сферический в вакууме а с +-)

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

    даже если у них разная частота кварцов в разы
    из тактов легко обратно перевести в МСЕК

    из МСЕК в такты не переведешь...


    проблемы начинается когда для разных микрух свои кварцы
    вот это уже...

    +для точной эмуляции нужны именно такты а не мсек


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

    Цитата Сообщение от barsik Посмотреть сообщение
    но время обратного хода луча везде 4 МСЕК.
    да не ужели

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

    А вг75 поддерживает перепрограммирование прямо во время отрисовки кадра? (так точно не помню а найти сходу не могу)

    или нужно делать сначала стоп дисплей а потом старт
    и слетит ли при этом счетчик строк\знакомест
    а в месте с ним строчные\кадровые синхроимпульсы
    (200% уверен что это неизвестно)

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

    а если не дожидаться
    вдруг я хочу первые 5 строк высотой 10 пикселей
    остальные по 8

    (интересно как бы я мог провернуть что нибудь подобное не зная растактовки)


    так же меня
    меня заинтересовала команда
    8. Установить счетчик

    http://emuverse.ru/wiki/Intel_8275/%...86%D0%B8%D1%8F

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

    Цитата Сообщение от barsik Посмотреть сообщение
    И не понял при чём здесь стек?
    ну вот как раз и видно
    что на РК не считают такты

    а на спеке такты считают (умя вообще всегда растактовка почти всего кода)

    и от этого все знают что юзая стек для чтения и записи
    а не (hl)
    тактов расходуется на порядок меньше (5/5.5 против 7 на z80)
    от того и выигрыш в скорости

    Цитата Сообщение от barsik Посмотреть сообщение
    Скучно стало на Синклере. Это не удивляет. Переходите на РК86.
    я одновременно на всех 8 битных платформах
    и на некоторых 16/32

    и вам советую не быть ограниченным одним РК
    а заимствовать опыт у других более развитых платформ
    и не рассказывать потом что это не будет мерцать...

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

    Цитата Сообщение от barsik Посмотреть сообщение
    только не хватало многозадачной многобанковой ДОС реального времени с кучей одновременно работающих процессов.
    Цитата Сообщение от barsik Посмотреть сообщение
    Прерывания не нужны, это знает любой владелец РК86
    Кстате а как у РК-шников, которым не нужны прерывания, обстоят дела с подключением "музыкального сопроцессора"????
    и воспроизведением на нем (на прерываниях конечно) всякой музыки во время скажем игрового процесса

    а никак?
    ну я понел
    Последний раз редактировалось NEO SPECTRUMAN; 09.03.2017 в 20:46.

  4. #24
    Guru Аватар для jerri
    Регистрация
    01.03.2005
    Адрес
    Samara
    Сообщений
    3,298
    Благодарностей: 691
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

    нам не скучно на Спеке. нам хочется разнообразия.
    С уважением,
    Jerri / Red Triangle.
    [02.05.2014] не забудь этот день. Чубайс должен умереть. Dixi.
    [l'Abbey des morts TSEvo EV...5%] kiwi кошелек +79178162712

  5. #25
    Member Аватар для SegaBoy
    Регистрация
    12.11.2009
    Адрес
    Москва
    Сообщений
    100
    Благодарностей: 56
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от NEO SPECTRUMAN Посмотреть сообщение
    ...
    так же меня
    меня заинтересовала команда
    8. Установить счетчик
    ...
    Нажмите на изображение для увеличения. 

Название:	001.jpg 
Просмотров:	51 
Размер:	29.1 Кб 
ID:	60037

    Сам пытаюсь осмыслить написанное ))

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

    Цитата Сообщение от jerri Посмотреть сообщение
    ...
    и вопрос к окружающим.
    может кто-нибудь испытать на живом RK86 то что будет напрограммировано в данном разделе?
    Если Апогей засчитывается , то могу испытать на нём. Если что, сам могу поменять в коде адреса обращения к портам ПДП и ВГ75.

  6. Этот пользователь поблагодарил SegaBoy за это полезное сообщение:
    NEO SPECTRUMAN (10.03.2017)

  7. #26
    Guru Аватар для jerri
    Регистрация
    01.03.2005
    Адрес
    Samara
    Сообщений
    3,298
    Благодарностей: 691
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    SegaBoy, ну он вроде совместимый.
    ну предположительно подойдет.
    С уважением,
    Jerri / Red Triangle.
    [02.05.2014] не забудь этот день. Чубайс должен умереть. Dixi.
    [l'Abbey des morts TSEvo EV...5%] kiwi кошелек +79178162712

  8. #27
    Master Аватар для barsik
    Регистрация
    05.10.2016
    Адрес
    г. Санкт-Петербург
    Сообщений
    724
    Благодарностей: 200
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от NEO SPECTRUMAN
    не использовать стек при переброске блоков памяти это просто...
    Цитата Сообщение от NEO SPECTRUMAN
    все знают, что юзая стек для чтения и записи, а не LD (HL) тактов расходуется на порядок меньше (5/5.5 против 7 на Z80), оттого и выигрыш в скорости
    Порядок это в 10 раз. Данные о выгоде от копирования стеком глупо приводить в тактах. Сравнения делают в процентах, не в тактах. В моих программах выигрыш от копирования стеком сплошного массива составлял ~30% процентов.

    О возможностях стека узнал в 1988: в драйверах СПЕЦИАЛИСТА так делается ролик и так работает с ВГ93 CP/M КОРВЕТА. В начале 90-х написал более 10 оконных драйверов на Z80, где ролик и очистка стеком, а позднее и для всех режимов VGA. Глупо делать выводы о чужих умениях программировать на ассемблере по одному примеру приведенному лишь для грубой оценки. Чваниться знаниями и надсмехаться над неумейками некрасиво.

    А со стеком люди связываются только когда действительно надо выжать максимум скорости, а "в быту", т.е при повседневном программировании, при написании "quick and dirty" кода, где важна скорость разработки, а не её качество, этим никто не занимается.

    Думаю, что сейчас для РК86 уже не стоит программировать на ассемблере. Якобы, PL/M даёт не менее эффективный код, а скорость разработки резко повышается. А с прерываниями по-прежнему не желаю связываться, уж лучше использовать опрос простейшего таймера, - достаточно кадровый бланк завести на вход порта. Прерывания в РК86 просто некуда прилепить, там нет сигнала BORDER.

    А считывание конца строки из ВГ75 ничего не даёт. Этим Вы узнаёте только, что пошёл ССИ (даже не бордюр, а о бордюре вообще узнать нельзя, т.к он программный). И о КСИ тоже ничего из ВГ75 не узнать. Поэтому и заморачиваться с этим не стоит.

    Да и абсолютно не требуется, т.к чтобы не мерцало при панорамировании, достаточно переключить экран на другую область ОЗУ. Это же не СИНКЛЕР. Так что забудьте о прерываниях. Их на РК86 нет, не было и никогда не будет.
    Последний раз редактировалось barsik; 10.03.2017 в 01:11.

  9. #28
    Activist
    Регистрация
    05.04.2013
    Адрес
    с. Починки, Нижегородская обл.
    Сообщений
    257
    Благодарностей: 166
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от jerri Посмотреть сообщение
    вот эта музыка что играет вполне реализуема на устройстве имеющем звуковой бит
    надо только как то синхронизироваться со временем.
    как можно это сделать на РК?
    Боюсь, что на РК такого не сделать из-за того же режима ПДП, который периодически тормозит процессор, и из-за которого звук будет хриплым. Так что либо звук, либо картинка на экране. Не зря на РК при обмене с магнитофоном экран гасится.

  10. #29
    Member Аватар для SegaBoy
    Регистрация
    12.11.2009
    Адрес
    Москва
    Сообщений
    100
    Благодарностей: 56
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от NEO SPECTRUMAN Посмотреть сообщение
    ...
    А вг75 поддерживает перепрограммирование прямо во время отрисовки кадра? (так точно не помню а найти сходу не могу)

    или нужно делать сначала стоп дисплей а потом старт
    и слетит ли при этом счетчик строк\знакомест
    а в месте с ним строчные\кадровые синхроимпульсы
    (200% уверен что это неизвестно)

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

    а если не дожидаться
    вдруг я хочу первые 5 строк высотой 10 пикселей
    остальные по 8
    ...
    Нажмите на изображение для увеличения. 

Название:	002.jpg 
Просмотров:	42 
Размер:	25.3 Кб 
ID:	60038

    Задание всех параметров экрана происходит в команде "Сброс". Получив эту команду отрисовка кадра мгновенно прекращается. Счётчики обнуляются и выдать в одном кадре строки разной высоты не получится.
    Запускать кадр надо обязательно командой "Начало воспроизведения". По команде "Прекращение воспроизведения" выключается только изображение, VRTC и HRTC продолжают работать как надо.

    Вот в этой книжке «Микропроцессоры и микропроцессорные комплекты интегральных микросхем» 1988 г. том 1 со стр. 122 идёт описание ВГ75.

  11. #30
    Master Аватар для barsik
    Регистрация
    05.10.2016
    Адрес
    г. Санкт-Петербург
    Сообщений
    724
    Благодарностей: 200
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Pyk
    на РК такого не сделать из-за того же режима ПДП, который периодически тормозит процессор, и из-за которого звук будет хриплым. Так что либо звук, либо картинка на экране. Не зря на РК при обмене с магнитофоном экран гасится
    Да, на РК нормальные звуки - только через ВИ53 или AY-8912. А темп считать аппаратным таймером, хотя бы простейшим, в виде меандра 5 ГЦ заведённым на вход МГ. Расход деталей - один TTL-счетчик, делитель такта 50 ГЦ на 10.

    Хотя на РК наверно получится читать время из одного из каналов ВИ53, но в ОРИОНЕ это у меня не получилось, никак не работало. Виню в этом слишком большую скорость CPU, а WAIT я тогда и не знал как включить в ОРИОНЕ (это было ещё в самом начале орионовщины). Потому всегда считал, что лучше все 3 канала ВИ53 отдать на вывод звука, потому-что 3-х голосная мелодия намного лучше двух голосной.

    А вот регулировка громкости по каналам ВИ53 полезна. В компьютере ПК11/16 (я имел его в 1993) для звука стоят 2 ВИ53. Один дает 3 канала меандров, а второй ВИ53 регулирует громкость по каналам. Звуки красивые, похоже на AY-8912.

    Для РК86, думаю, лучше придерживаться стандарта. Раз поставили ВИ53 в 1987, пусть и стоит. Тем более у всех ВИ53 уже есть. Регулировку громкости хотя бы по одному каналу можно сделать, используя КМОП-ключи. Это позволит иметь атаку и затухание звука у голоса, что даёт мелодию. Без этого намного хуже.

    Но если у кого-то есть желание поставить AY-8912, точнее не поставить (поставить и обезьяна сможет), а поддержать, - это было бы великолепно. Но сомневаюсь. Тут даже от победительной идеи цвета никто из фанатов РК не обрадовался, как следовало бы.
    Последний раз редактировалось barsik; 16.03.2017 в 06:17.

Страница 3 из 36 ПерваяПервая 1234567 ... ПоследняяПоследняя

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

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

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

Похожие темы

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

Ваши права

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