Фоновая картинка в 6538 и устройства на основе Денди
Moderator: Lavr
-
- Maniac
- Posts: 211
- Joined: 14 Mar 2006 00:20
- Location: Иркутск
Фоновая картинка в 6538 и устройства на основе Денди
Посмотрел доку HardWareMana по 6538. Там есть такие интересненькие выводы у чипа: COL1 - COL4. Любопытно, какие у них динамические характеристики? Если выводы быстроходные, то это фактически ещё один вход, через который можно выводить на экран фоновое изображение. Не так ли? И не просто однотонный фон, а картинку!
-
- Retired
- Posts: 490
- Joined: 16 Mar 2002 17:00
-
- Maniac
- Posts: 211
- Joined: 14 Mar 2006 00:20
- Location: Иркутск
В самых общих чертах, если не вдаваться в детали, оно, конечно, так.Shiru Otaku wrote:Насчёт выходов незнаю, но характеристики PPU NES известны: 1 слой фона (тайлами 8x8), 64 аппаратных спрайта (8x8 или 8x16, размер одинаков для всех).
Однако, читаем доку HardWareMan'а:
То, о чём ты говоришь, это всё в пунктах 2, 3 и 4. Меня же заинтересовал пункт 1. Про это там ещё есть:HardWareMan wrote:Слои изображения.
Создаваемое видеопроцессором изображение состоит из четырех независимых слоев. Рассмотрим их, начиная с самого нижнего:
1. Полностью окрашенный экран, цвет которого определяется содержимым ячейки видеопамяти с адресом 3F00h.
2. Спрайты с битом приоритета, равным 0.
3. Фоновое изображение.
4. Спрайты с битом приоритета, равным 1.
В "Дендике", к примеру, эти ножки на землю посажены, то есть там как раз 0000b и есть.HardWareMan wrote:Содержимое ячейки памяти с адресом 3F00h задает цвет фона для всего экрана (видимо, при варианте 0000 на сигналах Col1-Col4)
И наконец - вот это:
Я понял так, что если в регистр 3F00h прописать 0000b, то фон, задаваемый регистром, станет прозрачным и мы увидим фактически пятый слой, заданный уже на ножках микрухи.HardWareMan wrote:Сигналы Col1-Col4 задают цвет самого нижнего цвета (цвет ¹0 на фоне с самым нижним приоритетом). Зачем это надо? Не знаю. Но он выбирает 1 из 16 цветов.
Короче, я про что толкую, если на эти вывода не статический код подавать, а изменять его по ходу развёртки луча, то и на этот самый нижний фон можно ещё одну картинку вывести (правда, всего лишь шестнадцатицветную). Хоть каждый следующий пиксель в другой цвет крась, если оно там будет успевать всё срабатывать... Ну, это всё так, если идёт прямое отображение состояния этих входов на экран. Если же при включении питания или после ресета код со входов защёлкивается в каком-нибудь регистре и дальше они не опрашиваются, тогда - "пролёт". Короче, надо проверить.
Когда-то давно, воссоздавая по печатке схему "Дендика", я так и не понял, на фига эти ножки нужны, так и остались они на схеме безымянными. Как и ножки 30, 37 и 38 у 6527, тоже, объяснил бы их мне кто-нибудь

-
- Banned
- Posts: 2139
- Joined: 20 Mar 2005 13:41
- Location: От туда
Судя по моим докам, у 6527:
30 - HLT, атк. "1". По умолчанию "0".
37 - P2 \
38 - P1 - Битовые порты.
39 - P0 /
С этими портами есть замарочка - это не просто порт с защелкой, это фактически сигнал CS. На P0 висят джойстики, причем когда там "0", пристава их опрашивает. Это строб записи состояния кнопок. P1 и P2, ЕМНИП, юзаются при четверителе и пистолете. Вот (манускрипт очень древний
):

Да-да-да! У Дендика был предусмотрен магнитофон! Сюбор его юзает (по "Load" и "Save"), а так же некоторые игры. Например, я юзал порт в игре Mach Rider (про мотоциклиста), там можно было свой трэк сохранять.
PS Большой разъем слева - DB15 на второй джойстик для приставки с разъемами, или аналогичный разъем под пистолет у приставки со впаянными джоями. Сигнал "Res" на самом деле "Stb", т.к. в далёкие 90ые я не знал, что можно построить джой на одном 555ИР9ом, я его строил на связке 555ИЕ5+555КП7
Работало! =)
PPS По поводу входов Col0-Col3 у 6538: думаю, они задают адрес ячейки фона - от 3F00...3F0F. Т.к. при испытапниях на разных игрушках были разные цвета. Хотя, не факт - надо больше испытывать. Я последний раз испытывал в 94ом.
30 - HLT, атк. "1". По умолчанию "0".
37 - P2 \
38 - P1 - Битовые порты.
39 - P0 /
С этими портами есть замарочка - это не просто порт с защелкой, это фактически сигнал CS. На P0 висят джойстики, причем когда там "0", пристава их опрашивает. Это строб записи состояния кнопок. P1 и P2, ЕМНИП, юзаются при четверителе и пистолете. Вот (манускрипт очень древний


Да-да-да! У Дендика был предусмотрен магнитофон! Сюбор его юзает (по "Load" и "Save"), а так же некоторые игры. Например, я юзал порт в игре Mach Rider (про мотоциклиста), там можно было свой трэк сохранять.

PS Большой разъем слева - DB15 на второй джойстик для приставки с разъемами, или аналогичный разъем под пистолет у приставки со впаянными джоями. Сигнал "Res" на самом деле "Stb", т.к. в далёкие 90ые я не знал, что можно построить джой на одном 555ИР9ом, я его строил на связке 555ИЕ5+555КП7

PPS По поводу входов Col0-Col3 у 6538: думаю, они задают адрес ячейки фона - от 3F00...3F0F. Т.к. при испытапниях на разных игрушках были разные цвета. Хотя, не факт - надо больше испытывать. Я последний раз испытывал в 94ом.

Last edited by HardWareMan on 05 Jan 2014 03:38, edited 1 time in total.
-
- Maniac
- Posts: 211
- Joined: 14 Mar 2006 00:20
- Location: Иркутск
Спасибо за инфу, всё может пригодиться. Про магнитофон вообще не знал
LDA #01h
STA 4016h ;записали единицу
.............
LDA #00h
STA 4016h ;обнулили
Поскольку джойстик - это сдвиговый регистр с параллельной загрузкой, то у него, как и положено такому регистру, есть управляющий вход "Параллельная загрузка". Вот Р0 и работает на параллельную загрузку обоих джойстиков одновременно. В начале любой подпрограммки опроса джойстиков стоят вышеприведённые команды. То есть, как видишь, чисто программная процедура.
А вот о сдвиге содержимого во время чтения из порта ввода программисту заботиться уже не нужно, там применяется другой, более интересный сигнал, для каждого джойстика отдельный, вырабатывающийся автоматически в момент каждого чтения из порта соответствующего джойстика. С ним я тоже разобрался детально.
Так что, я думаю, Р1 и Р2 - это такие же порты, надо просто их адреса уточнить и можно пользоваться.
/...Кстати узнал - Р0, Р1 и Р2 - это три разряда одного и того же порта вывода - 4016h.../
Хочу подумать над какими-нибудь полезными устройствами на основе "Дендика". Уже существует рюмиковский генератор испытательных сигналов (ГИС) для настройки TV, это вещь простая, просто картридж с программой. Мне хочется, например, программатор сбацать, но тогда надо какую-нибудь клавку прицепить, коды вводить. Пока не знаю, что быстрее, свою слепить или с командами "писишной" разобраться.
Свою - интереснее, но тогда ухудшается повторяемость устройства. С точки зрения повторения - предпочтительнее то, где надо меньше паять и сверлить
...
Для писишной - только пассивнй переходник нужен, а остальное - программно.
А сама идея, из-за которой я начал тему, корнями тянется ещё к "Радио-86". Пытаясь добиться от ВГ75 попиксельного управления экраном, я думал о том, чтобы заменить ПЗУ знакогенератора чем нибудь вроде двухпортового ОЗУ, чтобы проц мог туда писать, а ВГ - читать...

С портом Р0 у меня заморочек не было. Я его всегда считал просто битовым портом вывода, сидящим на адресе 4016h. Туда можно писать, например:HardWareMan wrote: Судя по моим докам, у 6527:
30 - HLT, атк. "1". По умолчанию "0".
37 - P2 \
38 - P1 - Битовые порты.
39 - P0 /
С этими портами есть замарочка - это не просто порт с защелкой, это фактически сигнал CS. На P0 висят джойстики, причем когда там "0", пристава их опрашивает.
LDA #01h
STA 4016h ;записали единицу
.............
LDA #00h
STA 4016h ;обнулили
Поскольку джойстик - это сдвиговый регистр с параллельной загрузкой, то у него, как и положено такому регистру, есть управляющий вход "Параллельная загрузка". Вот Р0 и работает на параллельную загрузку обоих джойстиков одновременно. В начале любой подпрограммки опроса джойстиков стоят вышеприведённые команды. То есть, как видишь, чисто программная процедура.
А вот о сдвиге содержимого во время чтения из порта ввода программисту заботиться уже не нужно, там применяется другой, более интересный сигнал, для каждого джойстика отдельный, вырабатывающийся автоматически в момент каждого чтения из порта соответствующего джойстика. С ним я тоже разобрался детально.
Так что, я думаю, Р1 и Р2 - это такие же порты, надо просто их адреса уточнить и можно пользоваться.
/...Кстати узнал - Р0, Р1 и Р2 - это три разряда одного и того же порта вывода - 4016h.../
Хочу подумать над какими-нибудь полезными устройствами на основе "Дендика". Уже существует рюмиковский генератор испытательных сигналов (ГИС) для настройки TV, это вещь простая, просто картридж с программой. Мне хочется, например, программатор сбацать, но тогда надо какую-нибудь клавку прицепить, коды вводить. Пока не знаю, что быстрее, свою слепить или с командами "писишной" разобраться.


Для писишной - только пассивнй переходник нужен, а остальное - программно.
Ну, если это так, так это тоже здорово! Возможности по управлению фоном даже шире. Это надо обмыслить...HardWareMan wrote: По поводу входов Col0-Col3 у 6538: думаю, они задают адрес ячейки фона - от 3F00...3F0F. Т.к. при испытапниях на разных игрушках были разные цвета. Хотя, не факт - надо больше испытывать. Я последний раз испытывал в 94ом..
А сама идея, из-за которой я начал тему, корнями тянется ещё к "Радио-86". Пытаясь добиться от ВГ75 попиксельного управления экраном, я думал о том, чтобы заменить ПЗУ знакогенератора чем нибудь вроде двухпортового ОЗУ, чтобы проц мог туда писать, а ВГ - читать...
Last edited by Ball Bess on 26 Apr 2006 07:08, edited 4 times in total.
Кто мешает тебе выдумать порох непромокаемый?
-
- God
- Posts: 1388
- Joined: 02 Jan 2006 02:28
- Location: Abakan
Цепляй PS/2 клаву, и мышь прицепомПока не знаю, что быстрее, свою слепить или с командами "писишной" разобраться. Свою - интереснее, но тогда ухудшается повторяемость устройства. С точки зрения повторения - предпочтительнее то, где надо меньше паять и сверлить ...
Для писишной - только пассивнй переходник нужен, а остальное - программно.

Инфы в и-нете море. Там используется некое подобие i2c, т.е. одна линия данных, и одна линия строба. Работает все в режиме мультимастер, т.е. и ты в клаву можешь "писать" и клава может "писать" мастеру...
ЗЫ: Если ничего путнего не нароешь, кинь в личку, я свои архивы порою, там много интересного, но на инглицком...
-
- Maniac
- Posts: 211
- Joined: 14 Mar 2006 00:20
- Location: Иркутск
Ну, да, я вкратце читал об этом. Кроме протокола обмена на уровне железа (параметры импульсов, вперёд ногами или головой байт выезжает, и т.п.) там есть какая-то система команд для общения двух микроконтроллеров, "клавкиного" и 8042 (что на "маме"). Ну, с системой команд можно прямо на "писи" поиграться, а потом и к "Дендику" подцепиться, железо подогнать. Тестовый картридж также надо изготовить. Пока прошью туда программку для экспериментов с клавой, а потом он и дальше пригодится...jdigreze wrote: Цепляй PS/2 клаву, и мышь прицепом
Инфы в и-нете море. Там используется некое подобие i2c, т.е. одна линия данных, и одна линия строба. Работает все в режиме мультимастер, т.е. и ты в клаву можешь "писать" и клава может "писать" мастеру......
Короче, поищу пока доки.
PS загнул я, по-моему насчёт изучения системы команд на "писи"

Вернее, там уже другие команды...
Кто мешает тебе выдумать порох непромокаемый?
-
- God
- Posts: 1388
- Joined: 02 Jan 2006 02:28
- Location: Abakan
Поставь для работы с PS/2 процессор типа 90S2313, или хотя бы 90S1200.Ball Bess wrote:Пока прошью туда программку для экспериментов с клавой, а потом он и дальше пригодится...
Правильно мыслишь! ...хотя я первые эксперименты ставил через LPT, правда только на прием из клавиатуры. А програмку приемника писал на QB4.5Ball Bess wrote:PS загнул я, по-моему насчёт изучения системы команд на "писи"..... Она же внутренняя, для общения между контроллерами, со стороны CPU её не видать должно быть...
Вернее, там уже другие команды...

-
- Maniac
- Posts: 211
- Joined: 14 Mar 2006 00:20
- Location: Иркутск
А "Дендик" тогда зачем будет нужен? Основная цель-то - применить "Дендик", чтобы его не выбрасывали в мусор (т.к. "его эпоха прошла" и т.п.). Но это применение должно быть не "притянуто за уши" (применить Dendy, во что бы то ни стало), а экономически обосновано. Если же в данном проекте такого не получается - значит это применение не для "Дендика", чтобы не получилось что-то вроде "каши из топора", где "Дендик" как раз топором и будет.jdigreze wrote: Поставь для работы с PS/2 процессор типа 90S2313, или хотя бы 90S1200.
В этом смысле, кстати, переплюнуть ГИС Рюмика сложно, если вообще возможно, там нужен всего лишь картридж, а способности "Дендика" используются по полной программе: в нём есть кодер PAL, а это для ГИС - первейшая вещь.
Короче, если включить в это дело контроллер, который, как я думаю, сам обладает изрядной вычислительной мощью, то этот контроллер уже может сам справиться со всеми делами, которые я хотел поручить "Дендику". А тогда проект приобретает несколько иной вид. Там уже не будет игровой приставки, телевизора, зато будут несколько светодиодных семисегментных индикаторов (или ЖКИ) ну и так далее. Да 8042 у меня валяются целая пригоршня, от старых мамок. Одна даже с окошком для стирания. Это ещё один вариант, с дендиевской шиной его подружить...
Короче, смысл в чём... Если речь идёт о программаторе на основе "Дендика", то пусть он будет реализован при минимуме дополнительных затрат. Цель-то не в том, чтобы просто заполучить себе программатор любой ценой, их у меня до фига (все самодельные), а продемонстрировать что-то вроде шахматного этюда: как максимально красиво и за минимум ходов решить такую-то задачу. Почему, собственно, у программеров есть "демо-мейкерство", а у "железячников" нет? Мы тоже не лыком шиты, забацаем "демку"...
Одно только сомнение - может программатор - не самая лучшая идея? Но что ещё можно придумать? Блин, ГИС не переплюнуть... Хотя это - штуковина всё-таки по большей части программная...

Пойду-ка ещё пива возьму...
Last edited by Ball Bess on 23 Mar 2006 05:52, edited 2 times in total.
Кто мешает тебе выдумать порох непромокаемый?
-
- Maniac
- Posts: 211
- Joined: 14 Mar 2006 00:20
- Location: Иркутск
А чё только на приём? У параллельного порта есть, по-моему, что-то типа нибблового режима, когда половина на приём работает (четыре бита), а другая половина - на передачу. Таким макаром, имхо, можно изобразить практически "естественные условия" для клавы...jdigreze wrote: ....я первые эксперименты ставил через LPT, правда только на прием из клавиатуры...
Блин, обсуждение всего связанного с IBM PC, здесь идёт как оффтопик. Хоть мылом отписывайся. Короче, посмотрим, как Shaos к этому отнесётся...
Last edited by Ball Bess on 25 Mar 2006 23:40, edited 1 time in total.
Кто мешает тебе выдумать порох непромокаемый?
-
- God
- Posts: 1388
- Joined: 02 Jan 2006 02:28
- Location: Abakan
Потому что одни и те же проводники используются как для приема данных, так и для передачи. Т.о. нужно не только "дёргать" каким-либо битом порта, но и смотреть, что же там происходит, когда этим битом этого порта "дёргает" клавиатура.Ball Bess wrote:А чё только на приём? У параллельного порта есть, по-моему, что-то типа нибблового режима, когда половина на приём работает (четыре бита), а другая половина на передачу. Таким макаром, имхо, можно изобразить практически "естественные условия" для клавы...
Хоть это и стандарт, принятый для IBM PC, но используется не только в персональных компьютерах, например для подключения NumPad'ов для промышленных компьютеров...Ball Bess wrote:Блин, обсуждение всего связанного с IBM PC, здесь идёт как оффтопик. Хоть мылом отписывайся. Короче, посмотрим, как Shaos к этому отнесётся...
-
- Maniac
- Posts: 211
- Joined: 14 Mar 2006 00:20
- Location: Иркутск
Ну а я про чё толкую? Когда полпорта работает на передачу, а полпорта на приём, мы можем попарно объединить выводы этих половинок и получим то самое, что по одним и тем же проводам идёт и предача, и приём... Или тут ещё какая-то тонкость есть, в которую я не врубаюсь?jdigreze wrote: Потому что одни и те же проводники используются как для приема данных, так и для передачи. Т.о. нужно не только "дёргать" каким-либо битом порта, но и смотреть, что же там происходит, когда этим битом этого порта "дёргает" клавиатура.
...
Единственное требование к выходам порта - это должны быть не двухтактные выходы, а выходы с открытым коллектором, подтянутые к плюсу через резисторы. Вот это нуждается в уточнении. Хотя ничто не мешает сгородить простую буферную схемку и тогда плевать, какой там тип выходов...
Last edited by Ball Bess on 25 Mar 2006 02:25, edited 1 time in total.
Кто мешает тебе выдумать порох непромокаемый?
-
- God
- Posts: 1388
- Joined: 02 Jan 2006 02:28
- Location: Abakan
Вот это и есть та самая "тонкость"...Ball Bess wrote:Единственное требование к выходам порта - это должны быть не двухтактные выходы, а выходы с открытым коллектором, подтянутые к плюсу через резисторы.

Я не использовал ничего кроме ПРОВОДНИКОВ!
Кстати, если очень большое желание сделать "нечто" из Денди, то рекомендую присмотреться к идее создания среды разработчика софта под эту платформу.
А может быть стоит сделать программно-аппаратный комплекс для программирования микроконтроллеров серии AVR, включая IDE для asm'a, debuger, и возможность "заливки" откомпиленного и избавленного "от лажи" кода непосредственно в микроконтроллер по SPI. Если сюда добавить поддержку flash-карт, то можно всю эту кашу позиционировать как "Комплекс разработчика"

PS: Тема вышла за пределы обсуждения 6538...
-
- Maniac
- Posts: 211
- Joined: 14 Mar 2006 00:20
- Location: Иркутск
Ой, блин, мне даже услышать такое - и то страшно становится, не говоря о том, чтобы браться... Валенок я в этих вопросах. Поэтому не в состоянии оценить ни перспектив, ни спроса (не на предмет бабок намолотить, а чтобы это просто кому-то было нужно)... Мне известны, максимум, потребности домашних Кулибиных типа меня, тут я себя уверенее чувствую. А ты меня подталкиваешь в "смоляную яму", как выразился один дядя (Фредерик Брукс, по-моему), где я благополучно и утону. Самые родные мне предметы - паяльник и осциллограф, после этого идут машинные коды, а уже потом - ассемблер (тут уже можно запутаться если не в мнемониках, так в директивах)...jdigreze wrote: Кстати, если очень большое желание сделать "нечто" из Денди, то рекомендую присмотреться к идее создания среды разработчика софта под эту платформу.
А может быть стоит сделать программно-аппаратный комплекс для программирования микроконтроллеров серии AVR, включая IDE для asm'a, debuger, и возможность "заливки" откомпиленного и избавленного "от лажи" кода непосредственно в микроконтроллер по SPI. Если сюда добавить поддержку flash-карт, то можно всю эту кашу позиционировать как "Комплекс разработчика"...

Хотя до флэш-карт я всё-таки намерен добраться. На мой взгляд, это - правильная штука. И современная. Я с ними разберусь. После клавы. И ещё хочу найти какую-нибудь недорогую микруху, наделяющую всякие периферийные поделки USB-интерфейсом, чтобы я их мог к компу через USB-порт подцеплять.
Last edited by Ball Bess on 25 Mar 2006 02:21, edited 2 times in total.
Кто мешает тебе выдумать порох непромокаемый?
-
- Admin
- Posts: 24020
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
Админ подумал и решил что вместо хирургического вмешательства (к тому же при разрезании я не могу резать отдельные сообщения - только раскладывать в две кучки) лучше топик просто переименовать, чтобы заголовок включал в себя и устройства на основе Денди тоже.Ball Bess wrote:Я вижу. Я уже попросил e-mail'ом админа разрезать её на две части, пока ответа не было...jdigreze wrote:PS: Тема вышла за пределы обсуждения 6538...
Я тут за главного - если что шлите мыло на me собака shaos точка net