Последние темы
» Вити больше нет!автор bug19 Пн Фев 20 2023, 19:54
» Собираем оригинальный Орион 128
автор bug19 Пн Фев 20 2023, 19:47
» Проблема плющеного экрана ОРИОНА
автор kanzler Пн Ноя 28 2022, 12:05
» Орион 128 и его клоны возрождение 2019-2022 год
автор kanzler Пн Ноя 28 2022, 12:03
» Электроника КР-04. Информация, документы, фото.
автор kanzler Пн Ноя 28 2022, 12:02
» Новости форума
автор kanzler Пн Ноя 28 2022, 11:52
» Орион-128 НГМД запуск 2021 года
автор matrixplus Сб Сен 10 2022, 17:36
» ПЗУ F800 для РК86
автор ведущий_специалист Сб Сен 10 2022, 10:37
» Микропроцессорная лаборатория "Микролаб К580ИК80", УМК-80, УМПК-80 и др.
автор Электротехник Вт Июл 26 2022, 19:33
» Орион-128 SD карта в Орионе
автор matrixplus Чт Июн 02 2022, 09:00
» 7 Мая. День Радио!
автор Viktor2312 Чт Май 12 2022, 10:58
» Серия: Массовая радио библиотека. МРБ
автор Viktor2312 Ср Май 11 2022, 12:17
» Полезные книги
автор Viktor2312 Пн Май 09 2022, 15:07
» Орион 128 Стандарты портов и системной шины Х2
автор matrixplus Вс Май 08 2022, 23:08
» Орион-128 и Орион ПРО еще раз про блоки питания
автор matrixplus Вс Май 08 2022, 19:09
» Орион-128 Программаторы
автор matrixplus Вс Май 08 2022, 19:02
» Орион ПРО история сборки 2021 до 2022
автор matrixplus Вс Май 08 2022, 18:47
» Анонсы монет (New coin).
автор Viktor2312 Сб Май 07 2022, 23:11
» Хочу свой усилок для квартиры собрать не спеша
автор Viktor2312 Сб Май 07 2022, 19:33
» Амфитон 25у-002С
автор Viktor2312 Сб Май 07 2022, 09:38
» Майнер: T-Rex
автор Viktor2312 Вс Май 01 2022, 09:12
» GoWin. Изучение документации. SUG100-2.6E_Gowin Software User Guide. Среда разработки EDA.
автор Viktor2312 Пн Апр 25 2022, 01:01
» GoWin. Изучение документации. UG286-1.9.1E Gowin Clock User Guide.
автор Viktor2312 Сб Апр 23 2022, 18:22
» GoWin. Documentation Database. Device. GW2A.
автор Viktor2312 Ср Апр 20 2022, 14:08
» GOWIN AEC IP
автор Viktor2312 Ср Апр 20 2022, 12:08
Самые активные пользователи за месяц
Нет пользователей |
Поиск
Настройки ПДП КР580ВГ75
Страница 1 из 1 • Поделиться
Настройки ПДП КР580ВГ75
1
Данная тема создана с перспективой на будущее и вообще потому, что такое существует в природе. Я выложу здесь ту информацию, которая мне доступна и как вроде связанна с данной темой. В надежде, что пользователи поправят меня, если что, и дополнят тему в будущей перспективе...
Viktor2312- RIP
- Сообщения : 15492
Дата регистрации : 2012-08-10
Возраст : 45
Откуда : Пятигорск
Viktor2312- RIP
- Сообщения : 15492
Дата регистрации : 2012-08-10
Возраст : 45
Откуда : Пятигорск
стандартный видео режим 64*25
3
Режим ВГ75 устанавливает стандартная п/п-мма F82D. Если посмотреть в исходнике ПЗУ РК86 процедуру программирующую видео режим ВГ75, то увидим там:
Из исходника видим, что на отображение по строке отведено 78 периодов знакомест-клока (8 МГЦ : 6= 1.333 МГЦ), а параметр ZZZZ задающий HRTC (время гашения по строкам) равен 3. В иностранном даташите есть вот такая табличка:
Хотя в книге В.Майоров, А.Гаврилов "Практический курс программирования микропроцессорных систем", Машиностроение, 1989, в описании 580 ВГ75 как раз в параметре ZZZZ ошибка. Я много лет пользовался этой мерзкой книгой и никак не мог понять почему расчётная частота строк так сильно отличается (если посчитать частоты по этой гадкой книге, то частота строк получается 16.26 КГЦ). И только недавно заглянув во вражеский даташит обнаружил расхождение и понял в чём дело.
Строчный период длится 78+8= 86 периодов знакомест-клока (это 1.333 МГЦ) и получается равным 86*(1/1.333)= 64.5 МКСЕК (а надо 64 МКСЕК) и соответственно заниженную частоту строк в 15.504 КГЦ вместо 15.625. Длительность ССИ=HRTC - тоже не в стандарте. Это в РК 8 периодов частоты 1.3333 МГЦ, т.е 6 МКСЕК, вместо требуемых стандартом 4.7 МКСЕК.
Число линий растра в РК - 310, т.к режимом задано 30 строк и еще одна строка отведена на обратный ход луча. Т.о при высоте знакоместа в 10 линий, получаем 31*10= 310 линий (в стандарте 312.5). Таким образом и кадровый период получается не тем, равным 310*64.5= 19.840 МСЕК (вместо требуемых 20 МСЕК), что даёт частоту кадров 50.4 ГЦ вместо требуемых 50 ГЦ.
КСИ в РК длится, вместо требуемых стандартом 160 МКСЕК, целых 64*10= 640 МКСЕК. Это кстати, нисколько не вредит синхронизации.
Вообще-то сама ВГ75 не формирует ни КСИ ни ССИ, а только VRTC и HRTC - кадровый и строчный бланки (сигналы гашения на время обратного хода луча). Очевидно, т.к для каждой системы и разных частот пиксель клока нужны свои положения и длительности ССИ и КСИ, разработчики i8275 оставили эту задачу для прикладных инженеров.
Для получения ССИ и ССИ достаточно двух 155 АГ3 (74123), в каждом из которых два прецизионных одновибратора. Первый одновибратор запускаем по заднему фронту HRTC/VRTC и его время вибрации задаёт временнОе смещение до начала импульса ССИ/КСИ. А второй одновибратор запускается по окончанию вибрации первого одновибратора и задаёт длительность самогО импульса ССИ/КСИ. Но авторы РК86 использовали сигналы с выходов HRTC и VRTC нетрадиционно - в качестве самих ССИ / КСИ. Потому поменять длительности и положение этих импульсов в РК86 ни программно, ни аппаратно нельзя (если только с помощью "химии").
PS. PUSH-POP-ы для HL стоящие на входе/выходе этой подпрограммы установки режима были нужны лишь потому, что эта п/п-мма в ПЗУ РК входит в процедуру загрузки блока с МГ-ленты. В прикладной программе это не надо.
Проанализировав эти числа, записываемые в ВГ75, мы обнаружим, что базовый режим ВГ75 в РК настроен достаточно близко к стандарту телевидения, но всё-же отличается. Стандарт предусматривает частоту строк 15.625 КГЦ (что соответствуе строчному периоду в 64 МКСЕК), частоту кадров 50 ГЦ и длительности ССИ и КСИ 4.7 МКСЕК и 160 МКСЕК соответственно.
PUSK_VG:
PUSH HL
LD HL,VG_75+1
LD (HL),0 ; reset commando
DEC HL ; адрес VG_75
LD (HL),04DH ; 0.1001101 77 (77+1 знакомест)
LD (HL),01DH ; 00.011101 29 (29+1 строк)
LD (HL),99H ; 1001.1001 9 9 (9+1 линия подчерк)
; (9+1 линий в знакоместе)
LD (HL),93H ; 1.0.01.0011 счёт линий со смещением
; атрибуты отображать пробелом
; курсор - мигающая линия подчеркивания
; ZZZZ= 3. Т.о 3*2+2= 8 тактов сдвига -
; длина обратного хода луча в строке
INC HL ; адрес VG_75+1
LD (HL),27H ; Start display commando
LD A,(HL) ; read status (сброс бита прерывания)
AFAE1: LD A,(HL) ; read status
AND 20H ; mask 'Interrupt request flag'
JP Z,AFAE1 ; ждем прерывания по VRTC
LD HL,VT_57+8
LD (HL),80H
LD L,4 ; VT_57+04
LD (HL),low SA ; 0D0H
LD (HL),high SA ; 076H
INC L ; адрес VT_57+5
LD (HL),23H ; число байтов
LD (HL),49H ; режим
LD L,8 ; VT_57+8
LD (HL),0A4H
POP HL
RET
Из исходника видим, что на отображение по строке отведено 78 периодов знакомест-клока (8 МГЦ : 6= 1.333 МГЦ), а параметр ZZZZ задающий HRTC (время гашения по строкам) равен 3. В иностранном даташите есть вот такая табличка:
Хотя в книге В.Майоров, А.Гаврилов "Практический курс программирования микропроцессорных систем", Машиностроение, 1989, в описании 580 ВГ75 как раз в параметре ZZZZ ошибка. Я много лет пользовался этой мерзкой книгой и никак не мог понять почему расчётная частота строк так сильно отличается (если посчитать частоты по этой гадкой книге, то частота строк получается 16.26 КГЦ). И только недавно заглянув во вражеский даташит обнаружил расхождение и понял в чём дело.
Строчный период длится 78+8= 86 периодов знакомест-клока (это 1.333 МГЦ) и получается равным 86*(1/1.333)= 64.5 МКСЕК (а надо 64 МКСЕК) и соответственно заниженную частоту строк в 15.504 КГЦ вместо 15.625. Длительность ССИ=HRTC - тоже не в стандарте. Это в РК 8 периодов частоты 1.3333 МГЦ, т.е 6 МКСЕК, вместо требуемых стандартом 4.7 МКСЕК.
Число линий растра в РК - 310, т.к режимом задано 30 строк и еще одна строка отведена на обратный ход луча. Т.о при высоте знакоместа в 10 линий, получаем 31*10= 310 линий (в стандарте 312.5). Таким образом и кадровый период получается не тем, равным 310*64.5= 19.840 МСЕК (вместо требуемых 20 МСЕК), что даёт частоту кадров 50.4 ГЦ вместо требуемых 50 ГЦ.
КСИ в РК длится, вместо требуемых стандартом 160 МКСЕК, целых 64*10= 640 МКСЕК. Это кстати, нисколько не вредит синхронизации.
Вообще-то сама ВГ75 не формирует ни КСИ ни ССИ, а только VRTC и HRTC - кадровый и строчный бланки (сигналы гашения на время обратного хода луча). Очевидно, т.к для каждой системы и разных частот пиксель клока нужны свои положения и длительности ССИ и КСИ, разработчики i8275 оставили эту задачу для прикладных инженеров.
Для получения ССИ и ССИ достаточно двух 155 АГ3 (74123), в каждом из которых два прецизионных одновибратора. Первый одновибратор запускаем по заднему фронту HRTC/VRTC и его время вибрации задаёт временнОе смещение до начала импульса ССИ/КСИ. А второй одновибратор запускается по окончанию вибрации первого одновибратора и задаёт длительность самогО импульса ССИ/КСИ. Но авторы РК86 использовали сигналы с выходов HRTC и VRTC нетрадиционно - в качестве самих ССИ / КСИ. Потому поменять длительности и положение этих импульсов в РК86 ни программно, ни аппаратно нельзя (если только с помощью "химии").
PS. PUSH-POP-ы для HL стоящие на входе/выходе этой подпрограммы установки режима были нужны лишь потому, что эта п/п-мма в ПЗУ РК входит в процедуру загрузки блока с МГ-ленты. В прикладной программе это не надо.
Последний раз редактировалось: barsik (Ср Янв 06 2021, 19:52), всего редактировалось 1 раз(а)
barsik- Ветеран
- Сообщения : 1032
Дата регистрации : 2016-11-10
Откуда : Россия
псевдографический режим
4
В начальные годы популярности РК86 начинающие любители программирования ещё не разобрались в том, как перепрограммировать режим ВГ75, а информации об этом сдуру в журнале Радио не опубликовали. Потому ранние РК-игры работали в режиме 64*25. В таком режиме при использовании псевдографики, между рядами знакомест по вертикали остаётся разрыв в 2 линии растра. Но с 1989 года стали появляться РК-игры использующие псевдографику без разрывов между рядами знакомест. Для того, чтобы этого добиться нужно запрограммировать режим ВГ75 так, чтобы задать высоту знакоместа в 8 точек или линий растра. Вот как делается правильная инициализация ВГ75 для псевдографики (это реальный, хотя и не самый оптимальный по объёму код, взятый из одной РК-игры):
Здесь ВГ75 программируется на 38 строк высотой в 8 линий растра. Ещё одна строка задана на обратный ход луча по кадрам, что даёт общее число строк в 39. Общее число линий растра при этом: 39*8= 312, что как раз соответствует стандарту телевидения. Из общего числа в 39 строк видимыми являются 30 строк (редко используют вывод на 31 строку), остальные строки образуют программный бордюр.
Т.к 38 строк с символами занимают в ОЗУ намного больший объём, чем 30 строк стандартного режима, то экранный буфер не умещается в отведённое для него место 76D0...7FFF. Ниже 76D0 расширять экранный буфер нельзя, т.к ниже расположены рабочие ячейки ROM-BIOS. Потому экран в таком режиме программно переносят ниже 7500, в данном фрагменте на 4000. Стандартная подпрограмма вывода символов F809 выводит только на экран 76D0, потому символы в этом режиме можно выводить только прямой записью в экранное ОЗУ самим процессором.
P_VG75: LD A,0 ; команда формат экрана
LD (0C001H),A
LD A,4DH ; 77 --> т.е 78 колонок
LD (0C000H),A
LD A,25H ; 37+1 строк (т.е всего 39 строк)
LD (0C000H),A
LD A,77H ; 8 линий в знакоместе, 8 подчёркив-е
LD (0C000H),A
LD A,53H ; 0101.0011
LD (0C000H),A
LD A,27H ; команда начало отображения
LD (0C001H),A
LD A,(0C001H) ; это чтобы очистить бит прерывания
WAIT: LD A,(0C001H)
AND 20H ; ждём бит запроса на прерывание по VRTC
JP Z,WAIT
LD A,80H
LD (0E008H),A ; E000 - адрес ПДП ВТ57
LD A,0
LD (0E004H),A ; начальный адрес экрана 4000H
LD A,40H
LD (0E004H),A
LD A,93H ; режим
LD (0E005H),A
LD A,4BH ; число байтов
LD (0E005H),A
LD A,0A4H
LD (0E008H),A
RET
Здесь ВГ75 программируется на 38 строк высотой в 8 линий растра. Ещё одна строка задана на обратный ход луча по кадрам, что даёт общее число строк в 39. Общее число линий растра при этом: 39*8= 312, что как раз соответствует стандарту телевидения. Из общего числа в 39 строк видимыми являются 30 строк (редко используют вывод на 31 строку), остальные строки образуют программный бордюр.
Т.к 38 строк с символами занимают в ОЗУ намного больший объём, чем 30 строк стандартного режима, то экранный буфер не умещается в отведённое для него место 76D0...7FFF. Ниже 76D0 расширять экранный буфер нельзя, т.к ниже расположены рабочие ячейки ROM-BIOS. Потому экран в таком режиме программно переносят ниже 7500, в данном фрагменте на 4000. Стандартная подпрограмма вывода символов F809 выводит только на экран 76D0, потому символы в этом режиме можно выводить только прямой записью в экранное ОЗУ самим процессором.
Последний раз редактировалось: barsik (Ср Янв 06 2021, 19:48), всего редактировалось 1 раз(а)
barsik- Ветеран
- Сообщения : 1032
Дата регистрации : 2016-11-10
Откуда : Россия
Re: Настройки ПДП КР580ВГ75
5
Интересно было бы видеть информацию по ВТ57. Думаю можно и в эту тему, так как они работают в РК вместе.
ведущий_специалист- Мастер+
- Сообщения : 303
Дата регистрации : 2020-10-16
Откуда : Санкт Петербург
Страница 1 из 1
Права доступа к этому форуму:
Вы не можете отвечать на сообщения
|
|