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.
|