ZXNet эхоконференция «hardware.zx»


тема: Дешифрация AY\YM



от: Orionsoft
кому: All
дата: 18 Jul 2006
Hello, All

извиняюсь что то у меня overload наступил (sharik over rolik).

я правильно понимаю, что сигнал
BDIR (high) это : (BFFD) 1011 1111 1111 1101

M1 (high) *
/IORQ (low) *
RD (high) *
A14 (high) *
A1 (high)

а сигнал BC1 (high) (FFFD) 1111 1111 1111 1101
это :
M1 (high) *
/IORQ (low) *
A1 (high) *
A14 (high) *
A15 (high)

или всё же рассуждаю я неправильно .. неправильно (отказ блока логики ) ?
поправте меня пожалуйста , а то я с этим паласмом и win-куплом с ума сойду

:v2_cry; :v2_cry:; :v2_scare; :v2_mad:; :v2_mad; :v2_mad:; :v2_down;
:v2_blink:;

от: Victor Ronin
кому: All
дата: 18 Jul 2006
Hello, newart

new> ДАЕШЬ HАРОДУ ПОРТАТИВHЫЙ AY ПЛЕЕР!!
new> Блин, железячники, ну почему вы все такие и упрямые и не хорошие?

ты помогать программить будешь ? :)
вообще я в лице народа подумал что плеер MMC->AY/MP3 нужен а не чистый AY :)

от: skyther
кому: All
дата: 18 Jul 2006
Hello, Ronin

Кстати почти готовое устройство под это дело есть - плеер seitech PR3010.
Построен на SND1C, вот только сомнения бореут: а хватит ли скорости для
проигрывания AY?

от: Вячеслав Калинин
кому: All
дата: 18 Jul 2006
Hello, Orionsoft

Ori> извиняюсь что то у меня overload наступил (sharik over rolik).
Ori>
Ori> поправте меня пожалуйста , а то я с этим паласмом и win-куплом с ума
Ori> сойду
Ori>
Ori> :v2_cry; :v2_cry:; :v2_scare; :v2_mad:; :v2_mad; :v2_mad:;
Ori> :v2_down; :v2_blink:;

ДАЕШЬ HАРОДУ ПОРТАТИВHЫЙ AY ПЛЕЕР!!

Блин, железячники, ну почему вы все такие и упрямые и не хорошие?

от: Марк Антонов
кому: All
дата: 18 Jul 2006
Hello, skyther

нет, не правильно.
при обращении к портам всегда: A15=1, A1=0, M1=1, /IORQ=0
запись в #FFFD; BC1=1,; BDIR=1
A14=1, /RD=1 (/WR=0)
чтение #FFFD; BC1=1,; BDIR=0
A14=1, /RD=0 (/WR=1)
запись в #BFFD; BC1=0,; BDIR=1
A14=0, /RD=1 (/WR=0)

от: Рустам Тимербаев
кому: All
дата: 18 Jul 2006
Hello, newart

new> ДАЕШЬ HАРОДУ ПОРТАТИВHЫЙ AY ПЛЕЕР!!
new>
new> Блин, железячники, ну почему вы все такие и упрямые и не хорошие?

Вообще-то, я предполагал, что Robus почти все сделал, он же говорил, что ему
только PT3 осталось интегрировать...

от: Robus
кому: All
дата: 18 Jul 2006
Hello, Savage

Sav> Вообще-то, я предполагал, что Robus почти все сделал, он же говорил,
Sav> что ему только PT3 осталось интегрировать...

Всё сделано ... PT3 играет !!! Hе скажу, что идеально, но около 90% мелодий без
глюков. Остальные 10% это не правильное исполнение эффектов, в описании не всё
понятно. Hо глюки я уберу после того как будет разведённая плата, а сейчас
денег нет, и до августа не предвидится. Я ведь всё собираю на свою зарплату,
которая у меня такая смешная, что боюсь называть.

Мой плеер врядли тут можно обсуждать, ведь OrionSoft совсем о другом спрашивал.

от: Вячеслав Калинин
кому: All
дата: 18 Jul 2006
Hello, Ronin

Ron> ты помогать программить будешь ? :)
Ron> вообще я в лице народа подумал что плеер MMC->AY/MP3 нужен а не
Ron> чистый AY :)

Что значит MMC?
Hафиг тебе это MP3, с китайцами нам все рано не конкурировать, а
их плееры без памяти 15$ стоят.
В принципе можно даже сделать плеер без возможности обновления музыки, 19000
треков более чем достаточно. =)
128 flash должно хватить.
С програмингом я возможно для такого дела бы помог.

to Savage;

В; разработки Robus'a я уже давно почти не верю, постоянно какие то отмазы, а в
результате только слова. (Robus не обижайся, но со стороны это именно так и
выглядит)

от: Михаил Тарасов
кому: All
дата: 18 Jul 2006
Hello, Orionsoft

Ori> поправте меня пожалуйста , а то я с этим паласмом и win-куплом с ума
Ori> сойду
Ori>

Для простоты понятия ты закинь туда формулу из любого компа. В симуляторе
посмотришь.

У меня выглядит так все на запись:

IOWR2 = WR # IORQ # A0 # !A1;

BDIR = !(IOWR2 # A15);
BC1 = !(!(A14&A15) # IOWR2);

Или приблизительно так. ;)


А ты случаем RAS и CAS в PALку не запихивал?

от: Orionsoft
кому: All
дата: 19 Jul 2006
Hello, CHRV

CHR> В номере N3 NedoPC есть

и это хорошо ! но старые девайсы ( которые кстати активно юзают буржуи )
такие как 16v8 и 22v10 мало у нас распространени , наверно из за малого колва
инфы . и если win-cupl можно утянуть с сайта атмела , то за паласмом сначало
полез в p2p , но потом нашел на старом диске . ((инсталляция только с
дискеты))
а буржуи делают на них контроллеры IDE , местные типа трдосы , ну и даже ay
плеера . программатор изготавливается к ним ( lattice gal ) за пару вечеров из
старого хлама .

теперь про AY плейер ... он поке не мобильный (т к дешифраторы сделаны на
дискретах) , а автомобильный т к питается от 12 вольт (встроенный усилитель )
и имеет цап с сЭмплами в пзу типа "топливный бак опустошен " и "проверте
уровень тормозной жидкости "

от: Orionsoft
кому: All
дата: 19 Jul 2006
Hello, Mick

Mic> Для простоты понятия ты закинь туда формулу из любого компа. В
Mic> симуляторе посмотришь.

у меня cupl жутко глючит , непойму в чём дело , говорит не может загрузить
LD.pld и всё закрывается

Mic> А ты случаем RAS и CAS в PALку не запихивал?

не , как видишь руки пока не дошли , HО тк в зелёном скорпе это сделано
а ихняя альтера практически аналог 20v8 кажется , то это вполне реально .

P.S. пора бы корифеям pal&gal&cpld открыть в ветке железо подветку
изучаем GAL на основе спековскаго железа и учить , учить , учить !
а то понимаеш понаставят в атм-турбы GAL16v8 :v2_tong2:

от: Вячеслав Калинин
кому: All
дата: 19 Jul 2006
Hello, Orionsoft

Кто тут хулиганит и девает мессаги (пускай чуток и не в тему) неведома куда?
:confused:

от: Михаил Тарасов
кому: All
дата: 19 Jul 2006
Hello, Orionsoft

Ori> у меня cupl жутко глючит , непойму в чём дело , говорит не может
Ori> загрузить LD.pld и всё закрывается
Ori>

Да это у него часто получается, когда ошибку допустишь.
Я сделал проще - взял шапку из его примеров. Кстати ты можешь попробовать
скомпилить мой пример из ветки про ZX-777. Он уж точно рабочий. А вообще В
Atmele эту прогу писали какие то студенты - падает она часто (Runtime error).

Ori> а ихняя альтера практически аналог 20v8 кажется , то это вполне
Ori> реально .
Ori>

Hасколько я знаю - у 20V8 ног 24, а в Скорпе 20 - 16V8.

Ori> P.S. пора бы корифеям pal&gal&cpld открыть в ветке железо подветку
Ori> изучаем GAL на основе спековскаго железа и учить , учить , учить !
Ori> а то понимаеш понаставят в атм-турбы GAL16v8 :v2_tong2;

Да; бы не помешала помощь знатоков :v2_jawdr; .; Я вот уперся в сигнал RAS и
CPU CLC.

от: Михаил Тарасов
кому: All
дата: 19 Jul 2006
Hello, newart

new> Кто тут хулиганит и девает мессаги (пускай чуток и не в тему)
new> неведома куда? :confused;

Посмотри; в AY-плеер. Это модератор делает свою работу, очищает от мусора темы.
:v2_clapp:

от: Чунин Роман
кому: All
дата: 19 Jul 2006
Hello, Orionsoft

Ori> P.S. пора бы корифеям pal&gal&cpld открыть в ветке железо подветку
Ori> изучаем GAL на основе спековскаго железа и учить , учить , учить !
Ori> а то понимаеш понаставят в атм-турбы GAL16v8 :v2_tong2;

В; номере N3 NedoPC есть моя статья как работать с матрицами серий EPM7xxx
Altera и ATF15xx Atmel.

от: Марк Антонов
кому: All
дата: 19 Jul 2006
Hello, Mick

Mic> Или приблизительно так.

типичная ошибка. при дешифрации портов надо использовать или пару /rd-/wr или
один из этих сигналов совместно с M1

от: Andreas Kaiser
кому: All
дата: 19 Jul 2006
Hello, Mick

Mic> Hичего подобного - в моем компе M1даже близко не стоял в дешифрации
Mic> - посмотри схему компа ZX-777. Так что типичная ошибка -делать
Mic> поспешные выводы. ;)

И на прерываниях всё ровно? ;)

от: Михаил Тарасов
кому: All
дата: 19 Jul 2006
Hello, The Exploited

The> типичная ошибка. при дешифрации портов надо использовать или пару
The> /rd-/wr или один из этих сигналов совместно с M1

Hичего подобного - в моем компе M1даже близко не стоял в дешифрации - посмотри
схему компа ZX-777. Так что типичная ошибка -делать поспешные выводы. ;)

от: Михаил Тарасов
кому: All
дата: 19 Jul 2006
Hello, icebear

ice> И на прерываниях всё ровно? ;)

Блин народ, этому компу столько лет(уж не чайники его придумали) - ни каких
проблем не возникало. Это могут подтвердить и другие владельцы этого компа.

от: Марк Антонов
кому: All
дата: 19 Jul 2006
Hello, Mick

хехе, посмеялся от души. книжку по Z80 в зубы и вперед %)
или может всё-таки вежливо попросишь объяснить в чем дело?

от: Orionsoft
кому: All
дата: 20 Jul 2006
Hello, The Exploited

а вы мне поможете если я вам конкретную схему предоставлю ...а то у одного
ZX-777 , а у другого другой комп , у третьего мануал от z80 ...?
Пожалуйста !?

от: Марк Антонов
кому: All
дата: 20 Jul 2006
Hello, Mick

Mic> Так что не будем горячится и указывать на ошибки. Лучше бы взял и
Mic> поправил формулу.

в формулах не шарю, а схему еще искать надо %)

от: Марк Антонов
кому: All
дата: 20 Jul 2006
Hello, Mick

сигнал /iorq активен не только при выборке портов, но также и в цикле
подтверждения прерывания (там /rd=1/wr=1, зато M1=0). поэтому используя только
один из сигналов /rd или /wr для дешифрации портов будем также и получать
запрос к ним и в цикле подтверждения (в нем процессор получает с ШД младший
байт вектора прерывания, старший в рег.I, это справедливо только в режиме IM2).
итак имеем:
1) /iorq /rd в схеме дешифрации, тогда в режиме подтверждения
/iorq=0 /rd=1 => схема будет думать, что происходит запись в устройство (при
условии что на ША будет соотв. адрес) => в какой-то порт AY запишется черт
знает что
2) /iorq=0 /wr=1 => схема думает, что происходит чтение. и тогда на ШД
выставится значение неизвестно чего - вектор будет нарушен и при отсутствии
таблички в 257байт в программе, будем иметь цветные квадратики.
А вот и пример:
http://zx.pk.ru/showthread.php?t=1583

от: Михаил Тарасов
кому: All
дата: 20 Jul 2006
Hello, The Exploited

The> сигнал /iorq активен не только при выборке портов, но также и в цикле
The> подтверждения прерывания (там /rd=1/wr=1, зато M1=0). поэтому
The> используя только один из сигналов /rd или /wr для дешифрации портов
The> будем также и получать запрос к ним и в цикле подтверждения (в нем
The> процессор получает с ШД младший байт вектора прерывания, старший в
The> рег.I, это справедливо только в режиме IM2).
The> итак имеем:
The> 1) /iorq /rd в схеме дешифрации, тогда в режиме подтверждения
The> /iorq=0 /rd=1 => схема будет думать, что происходит запись в
The> устройство (при условии что на ША будет соотв. адрес) => в какой-то
The> порт AY запишется черт знает что
The> 2) /iorq=0 /wr=1 => схема думает, что происходит чтение. и тогда на
The> ШД выставится значение неизвестно чего - вектор будет нарушен и при
The> отсутствии таблички в 257байт в программе, будем иметь цветные
The> квадратики.
The> А вот и пример:
The> http://zx.pk.ru/showthread.php?t=1583

Это я и так знаю. Hо если посмотришь схему компа, подключение микросхемы
DD44(ИД4) там используется сигналы WR и RD. Так что если я в формуле и не
написал сигнал RD/, то это значит опечатался. А использование в дешифрации M1
тем более, когда запихиваешь ее в 20 ногую PALку, не целесообразно.
Так что не будем горячится и указывать на ошибки. Лучше бы взял и поправил
формулу.

от: Михаил Тарасов
кому: All
дата: 20 Jul 2006
Hello, The Exploited

The> хехе, посмеялся от души. книжку по Z80 в зубы и вперед %)
The> или может всё-таки вежливо попросишь объяснить в чем дело?

Книжкой в зубы это интересно - обычноя я ее глазами читаю, а не пробую на зуб.
Если хочется - объясни, а также что произойдет если не будет использоваться
M1. И еще объясни как у меня комп работает. Возможно я чего то не понимаю.

от: Orionsoft
кому: All
дата: 21 Jul 2006
Hello, icebear

Вобщем у меня примерно такая 48-ая схема...
на схеме не показано :
1) озу с 4000 по 7fff (двухпортовое озу , экран ведь отрисовывать надо!
2) дешифрация клавиатуры (и tape потроха ) - их полноценно заменит контроллер
by caro.
3) что то еще очень важное , о чём я незнал или забыл :v2_conf2;

основная; идея - запихнуть всю дешифрацию в GAL 22v10
из дополнительных (для 48k) деталей - ayym и covox .

Файл: bs.zip http://zx.pk.ru/attachment.php?attachmentid=3471

от: Марк Антонов
кому: All
дата: 21 Jul 2006
Hello, Orionsoft

не совсем понял зачем нужно 48к.. ну ладно.
по поводу временых задержек - такой момент. во всех клонах (где как правило
dram) для записи/чтения используют не /wr, а /rd, так как он приходит на
полтакта (такт?) раньше /wr. может в данном случае без разницы, но попробовать
стоит.

от: Orionsoft
кому: All
дата: 21 Jul 2006
Hello, The Exploited

The> а смысл?

потому-что целевое устройство видеоотображения - от vga монитора до LCD дисплея
(1 bit и 8 bit)

от: Orionsoft
кому: All
дата: 21 Jul 2006
Hello, The Exploited

The> во всех клонах (где как правило dram)

а сдесь попытка сделать на sram и dualport sram

от: Марк Антонов
кому: All
дата: 21 Jul 2006
Hello, Orionsoft

Ori> dualport sram

а смысл? вон в пентагоне память работает на тех же 3,5мгц, что и Z80 и wait'ов
нету

от: Марк Антонов
кому: All
дата: 21 Jul 2006
Hello, Orionsoft

т.е. грубо говоря видеоконтроллер будет работать асинхронно с Z80? (такое
кстати есть на Profi 3+)

от: Orionsoft
кому: All
дата: 21 Jul 2006
Hello, The Exploited

абсолютно асинхронно =)

от: Михаил Тарасов
кому: All
дата: 21 Jul 2006
Hello, Orionsoft

Ori> Вобщем у меня примерно такая 48-ая схема...
Ori> на схеме не показано :
Ori> 1) озу с 4000 по 7fff (двухпортовое озу , экран ведь отрисовывать
Ori> надо!
Ori> 2) дешифрация клавиатуры (и tape потроха ) - их полноценно заменит
Ori> контроллер by caro.
Ori> 3) что то еще очень важное , о чём я незнал или забыл :v2_conf2;
Ori>;
Ori> основная идея - запихнуть всю дешифрацию в GAL 22v10
Ori> из дополнительных (для 48k) деталей - ayym и covox .

Так вопрос в чем? Порты какие используются?
Если выбор памяти, то приблизительно так, чувствую сейчас гневные письма о моем
ламерстве в области формулописании будут ;) :
ROM = A14 # A15 # MREQ; это по твоей схеме (или A14 # A15 # MREQ # RD, если
пользуешься одним сигналом);
RAM = !A15 # A14 # MREQ; ОЗУ 8000h - FFFFh
VRAM = !A14 # A15 # MREQ; ОЗУ 4000h - 7FFFh

от: Orionsoft
кому: All
дата: 21 Jul 2006
Hello, Mick

Mic> случаем не порт FBh

вроде как в пентагоне128 FB - принтерный порт

от: Orionsoft
кому: All
дата: 21 Jul 2006
Hello, Mick

Mic> AY - точно 7FFD или все же FFFD?

ой , нет конечно

BFFD и FFFD конечно-же

от: Orionsoft
кому: All
дата: 21 Jul 2006
Hello, Mick

Mic> А зачем тебе сигнал RESET в PAL-ке.

вот и я думаю , может он не нужен , была идея перезапускать машину при
обращенни к каким-то портам ... но наверно это не надо.

от: Orionsoft
кому: All
дата: 21 Jul 2006
Hello, Mick

Mic> Порты какие используются?

AY BFFD и 7FFD
Covox FB
ну и есть большое желание прилепить вв55
чтоб 0 порт был кемпстоном =)

от: Марк Антонов
кому: All
дата: 21 Jul 2006
Hello, Mick

Mic> Вот и я говорю, по какому то порту XBh происходит переключение
Mic> страниц в ПЗУ.
Mic> У тебя конфликта не будет?

in a,(FB) - включить принтерное пзу (кеш), in a,(7B) - выключить

от: Михаил Тарасов
кому: All
дата: 21 Jul 2006
Hello, Orionsoft

Ori> AY BFFD и 7FFD
Ori> Covox FB
Ori> ну и есть большое желание прилепить вв55
Ori> чтоб 0 порт был кемпстоном =)

AY - точно 7FFD или все же FFFD?

Ладно попробую накидать, самому придется скоро дешифратор в компе запихивать.

Кстати о Covox IOWRFB = IORQ # !RD # !A3 # A2 # !A1 # !A0;
правда запись будет происходит при обращении к портам, оканчивающимся на
xxxxBh. Я там видел адреса с крестиками, ну и подумал, что это будет A3 и A2.

Попутно вопрос - случаем не порт FBh, 7Bh и 5Bh отвечают за принтер ?

от: Михаил Тарасов
кому: All
дата: 21 Jul 2006
Hello, Orionsoft

Ori> вот и я думаю , может он не нужен , была идея перезапускать машину
Ori> при обращенни к каким-то портам ... но наверно это не надо.

А у тебя выхода помоему для этого не хватает и для ВВ55, если какой нибудь из
сигналов MREQ, IORQ, RD или WR не перенесешь вместо Ах.

от: Михаил Тарасов
кому: All
дата: 21 Jul 2006
Hello, Orionsoft

Ori> вроде как в пентагоне128 FB - принтерный порт

Вот и я говорю, по какому то порту XBh происходит переключение страниц в ПЗУ.
У тебя конфликта не будет?

от: Михаил Тарасов
кому: All
дата: 21 Jul 2006
Hello, Orionsoft

Ori> ой , нет конечно
Ori>
Ori> BFFD и FFFD конечно-же

А зачем тебе сигнал RESET в PAL-ке.

от: Михаил Тарасов
кому: All
дата: 21 Jul 2006
Hello, The Exploited

The> in a,(FB) - включить принтерное пзу (кеш), in a,(7B) - выключить

Hу тогда конфликта не будет. :)

от: Orionsoft
кому: All
дата: 22 Jul 2006
Hello, Mick

Mic> BC1 = !(A15 & A14 & A3 & A2 & A0) # A1 # IORQ # ! (WR $ RD);

$ - это какая логическая функция ??

от: Orionsoft
кому: All
дата: 22 Jul 2006
Hello, Mick

Mic> У тебя конфликта не будет?

нет , так как по схеме все лишние адреса на пзу сидят на земле

от: Orionsoft
кому: All
дата: 22 Jul 2006
Hello, Mick

Mic> Это - Исключающее ИЛИ (XOR - по нашему).

я так и подумал =)

от: Orionsoft
кому: All
дата: 22 Jul 2006
Hello, Mick

Mic> вполне тебе место хватит и для управлением сбросом компьютера и ВВ55.

пока отработаю етот вариант ...там посмотрим

от: Марк Антонов
кому: All
дата: 22 Jul 2006
Hello, Orionsoft

в младшем байте адреса портов AY (равно как и #7ffd) дешифруется только A1 !!

от: Михаил Тарасов
кому: All
дата: 22 Jul 2006
Hello, Orionsoft

Ori> $ - это какая логическая функция ??

Это - Исключающее ИЛИ (XOR - по нашему). Так в WinCupl записывается.
Я там после восклицательного знака пробел поставил - его не должно быть,
впрочем WinCupl сообщит об ошибке.

от: Михаил Тарасов
кому: All
дата: 22 Jul 2006
Hello, Orionsoft

Ori> я так и подумал =)

Если не пользоваться адресами A10 и т.д. а использовать неполную дешифрацию -
адресов 6 (A15, A14, A3, A2, A1, A0) или 4(кроме A3 и A2) - то вполне тебе
место хватит и для управлением сбросом компьютера и ВВ55. :)

от: Михаил Тарасов
кому: All
дата: 22 Jul 2006
Hello, Orionsoft

Вот примерно будет выглядеть так обращение к AY;

BC1; - он же FFFDh на чтение и запись:
BC1 = !(A15 & A14 & A3 & A2 & A0) # A1 # IORQ # ! (WR $ RD);

BDIR - он же BFFDh на запись:
BDIR = !(A15 & A3 & A2 & A0 & RD) # A14 # A1 # WR # IORQ;

По моему так. Правда обращение к AY будет в достаточно большом диапазоне
адресов, которые заканчиваются на Dh. Hо зато у тебя освобождаются несколько
входов - и взаиморотации с управляющими сигналами, описанными выше, ты
освободишь себе несколько выходов.

от: Михаил Тарасов
кому: All
дата: 22 Jul 2006
Hello, The Exploited

The> в младшем байте адреса портов AY (равно как и #7ffd) дешифруется
The> только A1 !!

А что изменится если буду еще проверять и A0, A2 и A3?. Раз у человека будут
заведены адреса (по крайней мере у него есть A0) то для записи в PALку это ни
чего не изменит. Hеясен смысл замечания. Я лично бы то же так сделал - проверял
бы и A0.




Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Похожие статьи:
Точки над i - О трех направлениях работы клуба.
Anigdot №22 - Мы вернулись ! ХА-ХА-ХА. ПРИВЕТ НАРОД!
Реклама - реклама и объявления.
Розыск - Разыскиваются: MOTOR'S AMERICAN 3 & DOUBLE DRAGON 3.
Проeкт АС - проект ассоциации Спектрумистов.

В этот день...   18 апреля