User Tag List

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

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

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

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

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

    По умолчанию

    При программировании режима ВГ75 можно задать число строк на обратный ход луча по кадрам. Причём в очень узком диапазоне - от 1 до 4 строк гашения. У меня есть небольшое подозрение, что в англоязычном Доке неточность. Я предполагаю что это величина - длительность VRTC с каждой из сторон картинки. Т.е, снизу картинки можно иметь до 4-х строк гашения и столько строк гасить над картикой. Т.е это не общий размер бордюра, а размер бордюра сверху и снизу. Тогда всё встаёт на свои места.

    Потому-что, при 64-х строках, - всего 4 строки на обратный ход, - слишком мало для синхронизации, даже для профессионального видео-монитора с хорошей синхронизацией. Время кадрового бланка обычно составляет 25% длительности кадра. А получается лишь

    100 * 4 : (64+4)= 5.8%, или
    20 МСЕК : (64+4) * 4= 1.175 МКСЕК.

    Узнать точно можно, установив режим с 4-мя строками и в ждущем режиме, засинхронизировавшись от переднего фронта VRTC, посмотреть сколько строк приходится на период гашения. Или можно измерить частоту КСИ при одной строке и при 4-х строках на гашение по кадрам. И сравнить результаты с расчётными. О-о-о... я и забыл, что мы уже не в 80-тых, и теперь у многих есть логические анализаторы, так что экспериментально установить любые свойства железа не проблема (но у меня только осциллограф).

    Если максимальное число строк гашения реально 4, то получается, что разработчики ВГ75 изначально рассчитывали, что часть строк гашения по кадрам, в случае необходимости, будет погашена программно.

    Для игр интересными представляются дополнительные режимы, возникающие за счёт 4-х строк гашения по кадрам, при условии что ОЗУ верно регенерируется при 4-х строках, в которых отключена работа ПДП, как это было выяснено в опытах vinxru.

    К сожалению, VRTC сигнал использован в качестве КСИ. Поэтому, чтобы иметь 4 строки при верной длине КСИ хорошо бы добавить аппаратный формирователь КСИ. Без этого, в базовой схеме, - повышение числа строк гашения одновременно удлиняет КСИ, что может ухудшить синхронизацию.

    Рассмотрим, какие режимы есть и какие возможны.

    В играх обычно используется режим 36+1 строк из которых 30 строк видимые, что с базовым фонтом даёт псевдографику 128*60. Это основной режим псевдографических игр и графического редактора. С альтернативным фонтом с разложением знакоместа на 3 пикселя по горизонтали и 2 по вертикали получается режим 192*60.

    Но сам я использовал нетрадиционный режим, основанных на альтернативном фонте. При программировании высоты знакоместа не в 8, в всего 6 линий растра и задании 48 строк и 4-х строк на гашение по кадрам (или 51 строка +1 на гашение), общее число строчных периодов в кадре составит 48*6 +4*6= 312, что и требуется. Я не устанавливал 4 строки на гашение, используя только одну, как в базовом режиме (неважно каким образом в растре 52 строки). При высоте знакоместа в 6 линий растра - видимы 42 строки. Такой режим позволяет выводить не только псевдографику, но и текст, хотя и не базовым фонтом (фонт высотой в 6 точек).

    Так как в этом режиме высота знакоместа 6, мы вынуждены использовать разбиение знакоместа на 2 по горизонтали и 3 по вертикали. Что даёт общее псевдографическое разрешение 128*126. Если ввести аппаратный ССИ и поднять такт ВГ75 на 10%, т.е сделать 9 МГЦ вместо 8, как это сделано в "Партнёре", то пиксель такого режима станет квадратным, а с добавкой цвета такой режим станет идеальным для игр. Лично я использовал именно такой режим, т.к у меня был фонт 8*8, а 8 точек по горизонтали на 3 не делится, отчего 192 пикселя в линии, я иметь не мог.

    Второй совершенно уникальный режим, который является не только более удобной для программиста модификацией режима 192*60, но и даёт High Resolution Mode. Не зная, как подогнать частоты, я использовал перестройку частот разверток в дисплее. Однако, теперь ясно, что можно обойтись и без этого.

    В этом режиме используется 36 строк. Если уменьшить число линий растра в знакоместе с 8 до 4-х, и одновременно удвоить число строк, то псевдографичность по вертикали отпадёт, что существенно облегчает работу программиста. Тогда псевдографическая матрица сокращается с 3*2 до 3*1, хотя число пикселей в экране не меняется и остаётся тот же режим 192*60. Для вывода текста в этом режиме используется особый фонт, в котором символ формируется из двух знакомест размером 6*4, стоящих рядом по вертикали. Как плюс, - при этом можно делать более плавный вертикальный ролик с шагом в пол строки.

    Однако, 36*2= 72 строки не запрограммировать на ВГ75. Поэтому приходится использовать 64+4=68 строк, что приводит к частоте кадров: 1 : ((64+4)*4*64)= 57 Герц. Для телевизора надо 50 ГЦ или 60 ГЦ. Чтобы довести частоту кадров до 60 ГЦ, укорачиваем ССИ с 6 до 4 и число символов в строке с 78 до 77. Тогда строчный период падает до: (77+4)*0.75= 60.75 МКС, а частота кадров составляет: 1 : ((64+4)*4*60.75)= ровно 60 Герц.

    Если же ВГ75, как я предполагаю, позволяет иметь более 4-х строк на гашение по кадрам, то такой режим достигается и при 50 Гц. Вот почему возник вопрос о числе строк гашения по кадрам.

    Теперь главный сюжет, - для чего это делается, т.е для чего лучше иметь альтернативный фонт 6*4. При использовании альтернативного фонта с разложением на 3 по горизонтали и 2 по вертикали (высота пикселя всего 2 линии), реализуется уникальный режим высокого разрешения 192*120. Этот режим работает с частотой кадров в 60 ГЦ, поэтому на старом советском телевизоре, без подстройки частот, он работать не может.

    Впрочем, с появлением идеи использовать альтернативный фонт содержащий графику спрайтов (к тому же с цветом), всё графические режимы, даже самые высокие, становятся ненужными. На кой хрен иметь в играх фигурки из квадратиков, как это было на TV-приставках для игр из 70-х, если гораздо красивее и легче в программировании иметь нормальную спрайтовую графику в играх. Программировать псевдографику очень сложно.


    Цитата Сообщение от NEO SPECTRUMAN
    Цитата Сообщение от barsik
    Регенерация содержимого ОЗУ осуществляется подачей фронта /RAS с перебором всех 128 возможных состояний адреса, период регенерации не должен был превышать 2 МСЕК
    когда ДМА успевает перебрать все 100% ? Тем более непонятно, как тогда регенерируются вторые 16 кб памяти
    Чтобы ОЗУ регенерились надо перебрать все сочетания битов на 7 линиях A0...A6, т.е 128 адресов. Причём, для регенерации - подача /CAS не нужна. А т.к /RAS подаётся сразу на все установленные в ЭВМ ОЗУ, то хотя читается из одной банки, регенерируются сразу все банки памяти. И банки по 16К на РУ3-тьих, и банки по 64К на РУ5, и банки по 256К на РУ7-мых, и банки по 8 мб на SIMM.

    Цитата Сообщение от mvg
    Вы упомянули компилятор PL/M для 8080. Есть ли какой-нибудь мануал ?
    Я сам о крутизне PL/M узнал пару месяцев назад в одной из тем про программирование. В 90-е годы не имел PL/M для CP/M. Раньше я считал PL/M таким же бесполезным для 8-ми разрядок, как СИ и Паскаль.

    С тех пор у всех клянчил учебник по PL/M на русском языке, - бесполезно. В списке литературы на Вики приведены 2 учебника на русском, но я не сумел скачать. Т.к требуют купить эти книги. Поэтому пришлось скачать мануалы на иностранном языке. А до программирования на PL/M я ещё даже не добрался.

    И даже ещё не имею самого PL/M для CP/M, есть только исходник на фортране. Есть Nevada Fortran для CP/M. Рассчитываю откомпиллировать в нём исходник PL/M, чтобы получить CP/M COM-файл. А затем использовать его в эмуляторе ОРИОНА с CP/M или с резидентным эмулятором 22NICE в Windows.

    Пока я "погряз" в возне с железяками. Лишь читаю ДОК-и по PL/M, вот и всё "движение", что есть пока в отношении PL/M. Оттого я и агитирую за PL/M, чтобы не разбираться в этом одному. Как пользоваться XPLM для PC, я тоже не знаю (он на выходе выдаёт не COM-файл, а какой-то промежуточный формат). Кстати есть и более развитая версия PL/M, называется PLMX.

    С англоязычными учебниками та же проблема (хотя тут учебников больше) - требуется покупка книг. Например, "A Guide to PL/M Programming for Microcomputer Applications". Поэтому удалось скачать лишь ДОК-и от Intel для PL/M-80, PL/M-86, PL/M-386 и даже PL/M-8051. Пока читаю вот это: M/9800268B_PLM-80_Programming_Manual_Jan80.pdf
    Последний раз редактировалось barsik; 14.03.2017 в 18:22.

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

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

Эту тему просматривают: 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

Ваши права

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