Просмотр полной версии : Дешифрация AY\YM
Orionsoft
18.07.2006, 02:24
извиняюсь что то у меня 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:
нет, не правильно.
при обращении к портам всегда: 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)
поправте меня пожалуйста , а то я с этим паласмом и win-куплом с ума сойду
Для простоты понятия ты закинь туда формулу из любого компа. В симуляторе посмотришь.
У меня выглядит так все на запись:
IOWR2 = WR # IORQ # A0 # !A1;
BDIR = !(IOWR2 # A15);
BC1 = !(!(A14&A15) # IOWR2);
Или приблизительно так. ;)
А ты случаем RAS и CAS в PALку не запихивал?
Orionsoft
18.07.2006, 21:52
Для простоты понятия ты закинь туда формулу из любого компа. В симуляторе посмотришь.
у меня cupl жутко глючит , непойму в чём дело , говорит не может загрузить LD.pld и всё закрывается
А ты случаем RAS и CAS в PALку не запихивал?
не , как видишь руки пока не дошли , НО тк в зелёном скорпе это сделано
а ихняя альтера практически аналог 20v8 кажется , то это вполне реально .
P.S. пора бы корифеям pal&gal&cpld открыть в ветке железо подветку
изучаем GAL на основе спековскаго железа и учить , учить , учить !
а то понимаеш понаставят в атм-турбы GAL16v8 :v2_tong2:
P.S. пора бы корифеям pal&gal&cpld открыть в ветке железо подветку
изучаем GAL на основе спековскаго железа и учить , учить , учить !
а то понимаеш понаставят в атм-турбы GAL16v8 :v2_tong2:
В номере №3 NedoPC есть моя статья как работать с матрицами серий EPM7xxx Altera и ATF15xx Atmel.
у меня cupl жутко глючит , непойму в чём дело , говорит не может загрузить LD.pld и всё закрывается
Да это у него часто получается, когда ошибку допустишь.
Я сделал проще - взял шапку из его примеров. Кстати ты можешь попробовать скомпилить мой пример из ветки про ZX-777. Он уж точно рабочий. А вообще В Atmele эту прогу писали какие то студенты - падает она часто (Runtime error).
а ихняя альтера практически аналог 20v8 кажется , то это вполне реально .
Насколько я знаю - у 20V8 ног 24, а в Скорпе 20 - 16V8.
P.S. пора бы корифеям pal&gal&cpld открыть в ветке железо подветку
изучаем GAL на основе спековскаго железа и учить , учить , учить !
а то понимаеш понаставят в атм-турбы GAL16v8 :v2_tong2:
Да бы не помешала помощь знатоков :v2_jawdr: . Я вот уперся в сигнал RAS и CPU CLC.
Кто тут хулиганит и девает мессаги (пускай чуток и не в тему) неведома куда? :confused:
Кто тут хулиганит и девает мессаги (пускай чуток и не в тему) неведома куда? :confused:
Посмотри в AY-плеер. Это модератор делает свою работу, очищает от мусора темы. :v2_clapp:
Или приблизительно так.
типичная ошибка. при дешифрации портов надо использовать или пару /rd-/wr или один из этих сигналов совместно с M1
типичная ошибка. при дешифрации портов надо использовать или пару /rd-/wr или один из этих сигналов совместно с M1
Ничего подобного - в моем компе M1даже близко не стоял в дешифрации - посмотри схему компа ZX-777. Так что типичная ошибка -делать поспешные выводы. ;)
Ничего подобного - в моем компе M1даже близко не стоял в дешифрации - посмотри схему компа ZX-777. Так что типичная ошибка -делать поспешные выводы. ;)
И на прерываниях всё ровно? ;)
И на прерываниях всё ровно? ;)
Блин народ, этому компу столько лет(уж не чайники его придумали) - ни каких проблем не возникало. Это могут подтвердить и другие владельцы этого компа.
хехе, посмеялся от души. книжку по Z80 в зубы и вперед %)
или может всё-таки вежливо попросишь объяснить в чем дело?
хехе, посмеялся от души. книжку по Z80 в зубы и вперед %)
или может всё-таки вежливо попросишь объяснить в чем дело?
Книжкой в зубы это интересно - обычноя я ее глазами читаю, а не пробую на зуб.
Если хочется - объясни, а также что произойдет если не будет использоваться M1. И еще объясни как у меня комп работает. Возможно я чего то не понимаю.
сигнал /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
сигнал /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
Это я и так знаю. Но если посмотришь схему компа, подключение микросхемы DD44(ИД4) там используется сигналы WR и RD. Так что если я в формуле и не написал сигнал RD/, то это значит опечатался. А использование в дешифрации M1 тем более, когда запихиваешь ее в 20 ногую PALку, не целесообразно.
Так что не будем горячится и указывать на ошибки. Лучше бы взял и поправил формулу.
Так что не будем горячится и указывать на ошибки. Лучше бы взял и поправил формулу.в формулах не шарю, а схему еще искать надо %)
Orionsoft
20.07.2006, 03:15
а вы мне поможете если я вам конкретную схему предоставлю ...а то у одного ZX-777 , а у другого другой комп , у третьего мануал от z80 ...?
Пожалуйста !?
а вы мне поможете если я вам конкретную схему предоставлю ...а то у одного ZX-777 , а у другого другой комп , у третьего мануал от z80 ...?
Пожалуйста !?
Конечно поможем, какой вопрос.
Orionsoft
21.07.2006, 03:54
Вобщем у меня примерно такая 48-ая схема...
на схеме не показано :
1) озу с 4000 по 7fff (двухпортовое озу , экран ведь отрисовывать надо!
2) дешифрация клавиатуры (и tape потроха ) - их полноценно заменит контроллер by caro.
3) что то еще очень важное , о чём я незнал или забыл :v2_conf2:
основная идея - запихнуть всю дешифрацию в GAL 22v10
из дополнительных (для 48k) деталей - ay\ym и covox .
не совсем понял зачем нужно 48к.. ну ладно.
по поводу временых задержек - такой момент. во всех клонах (где как правило dram) для записи/чтения используют не /wr, а /rd, так как он приходит на полтакта (такт?) раньше /wr. может в данном случае без разницы, но попробовать стоит.
Orionsoft
21.07.2006, 12:40
во всех клонах (где как правило dram)
а сдесь попытка сделать на sram и dualport sram
dualport sramа смысл? вон в пентагоне память работает на тех же 3,5мгц, что и Z80 и wait'ов нету
Orionsoft
21.07.2006, 14:27
а смысл?
потому-что целевое устройство видеоотображения - от vga монитора до LCD дисплея (1 bit и 8 bit)
т.е. грубо говоря видеоконтроллер будет работать асинхронно с Z80? (такое кстати есть на Profi 3+)
Orionsoft
21.07.2006, 19:46
абсолютно асинхронно =)
Вобщем у меня примерно такая 48-ая схема...
на схеме не показано :
1) озу с 4000 по 7fff (двухпортовое озу , экран ведь отрисовывать надо!
2) дешифрация клавиатуры (и tape потроха ) - их полноценно заменит контроллер by caro.
3) что то еще очень важное , о чём я незнал или забыл :v2_conf2:
основная идея - запихнуть всю дешифрацию в GAL 22v10
из дополнительных (для 48k) деталей - ay\ym и covox .
Так вопрос в чем? Порты какие используются?
Если выбор памяти, то приблизительно так, чувствую сейчас гневные письма о моем ламерстве в области формулописании будут ;) :
ROM = A14 # A15 # MREQ; это по твоей схеме (или A14 # A15 # MREQ # RD, если пользуешься одним сигналом);
RAM = !A15 # A14 # MREQ; ОЗУ 8000h - FFFFh
VRAM = !A14 # A15 # MREQ; ОЗУ 4000h - 7FFFh
Orionsoft
21.07.2006, 20:49
Порты какие используются?
AY BFFD и 7FFD
Covox FB
ну и есть большое желание прилепить вв55
чтоб 0 порт был кемпстоном =)
AY BFFD и 7FFD
Covox FB
ну и есть большое желание прилепить вв55
чтоб 0 порт был кемпстоном =)
AY - точно 7FFD или все же FFFD?
Ладно попробую накидать, самому придется скоро дешифратор в компе запихивать.
Кстати о Covox IOWRFB = IORQ # !RD # !A3 # A2 # !A1 # !A0;
правда запись будет происходит при обращении к портам, оканчивающимся на xxxxBh. Я там видел адреса с крестиками, ну и подумал, что это будет A3 и A2.
Попутно вопрос - случаем не порт FBh, 7Bh и 5Bh отвечают за принтер ?
Orionsoft
21.07.2006, 21:06
AY - точно 7FFD или все же FFFD?
ой , нет конечно
BFFD и FFFD конечно-же
ой , нет конечно
BFFD и FFFD конечно-же
А зачем тебе сигнал RESET в PAL-ке.
Orionsoft
21.07.2006, 21:10
случаем не порт FBh
вроде как в пентагоне128 FB - принтерный порт
вроде как в пентагоне128 FB - принтерный порт
Вот и я говорю, по какому то порту XBh происходит переключение страниц в ПЗУ.
У тебя конфликта не будет?
Orionsoft
21.07.2006, 21:14
А зачем тебе сигнал RESET в PAL-ке.
вот и я думаю , может он не нужен , была идея перезапускать машину при обращенни к каким-то портам ... но наверно это не надо.
Вот и я говорю, по какому то порту XBh происходит переключение страниц в ПЗУ.
У тебя конфликта не будет?in a,(FB) - включить принтерное пзу (кеш), in a,(7B) - выключить
in a,(FB) - включить принтерное пзу (кеш), in a,(7B) - выключить
Ну тогда конфликта не будет. :)
вот и я думаю , может он не нужен , была идея перезапускать машину при обращенни к каким-то портам ... но наверно это не надо.
А у тебя выхода помоему для этого не хватает и для ВВ55, если какой нибудь из сигналов MREQ, IORQ, RD или WR не перенесешь вместо Ах.
Orionsoft
21.07.2006, 23:27
У тебя конфликта не будет?
нет , так как по схеме все лишние адреса на пзу сидят на земле
Вот примерно будет выглядеть так обращение к 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. Но зато у тебя освобождаются несколько входов - и взаиморотации с управляющими сигналами, описанными выше, ты освободишь себе несколько выходов.
Orionsoft
22.07.2006, 16:40
BC1 = !(A15 & A14 & A3 & A2 & A0) # A1 # IORQ # ! (WR $ RD);
$ - это какая логическая функция ??
в младшем байте адреса портов AY (равно как и #7ffd) дешифруется только A1 !!
$ - это какая логическая функция ??
Это - Исключающее ИЛИ (XOR - по нашему). Так в WinCupl записывается.
Я там после восклицательного знака пробел поставил - его не должно быть, впрочем WinCupl сообщит об ошибке.
в младшем байте адреса портов AY (равно как и #7ffd) дешифруется только A1 !!
А что изменится если буду еще проверять и A0, A2 и A3?. Раз у человека будут заведены адреса (по крайней мере у него есть A0) то для записи в PALку это ни чего не изменит. Неясен смысл замечания. Я лично бы то же так сделал - проверял бы и A0.
Orionsoft
22.07.2006, 19:30
Это - Исключающее ИЛИ (XOR - по нашему).
я так и подумал =)
я так и подумал =)
Если не пользоваться адресами A10 и т.д. а использовать неполную дешифрацию - адресов 6 (A15, A14, A3, A2, A1, A0) или 4(кроме A3 и A2) - то вполне тебе место хватит и для управлением сбросом компьютера и ВВ55. :)
Orionsoft
22.07.2006, 20:38
вполне тебе место хватит и для управлением сбросом компьютера и ВВ55.
пока отработаю етот вариант ...там посмотрим
А что изменится если буду еще проверять и A0, A2 и A3?вопрос конечно спорный. я бы делал всё как в пентагоне, а для борьбы с такой неполной дешифрацией придуман /iorqge
вопрос конечно спорный. я бы делал всё как в пентагоне, а для борьбы с такой неполной дешифрацией придуман /iorqge
Работать будет все и так, если конечно не найдутся извращенцы, пользующиеся неполной дешифрации, обращаются к AY не по стандартным адресам. К тому же больше адресных линий - больше портов на будущее, чтобы не городить огород.
Для примера. Если дешифрацию производить по A15, A14, A1 и A0, то к АУ можно обращаться как по BFFDh и FFFDh, так и BFF1h, FFF1h, BFF5h, FFF5h,BFF9h, FFF9h и т.д. А если убрать A0 - то глаза так и загоряться у извращенцев в подкладывании "хрюшек". ;)
Так что много адресов не бывает.
опять меня не поняли. ну и черт с ними и портами и извращенцами и тех кто их придумал
опять меня не поняли. ну и черт с ними и портами и извращенцами и тех кто их придумал
Да ты не ругайся, а объясни свою мысль. Дело в том, что все Спекки кто как мог так и делал - главное чтобы был результат - отсюда великое множество реализаций одного и тогоже. С другой стороны я писал примеры не для того чтобы это приняли за правильное решение - это всего лишь пример реализации того, что хотел бы увидеть Orionsoft. А как он решит - это его личное дело. Мы всего лишь помогаем в меру своей образованнности. Это были мои предложения. Ты предложи свои, может они будут более удачными.
tmp_online
23.07.2006, 19:26
WinCupl - это что такое? И где можно скачать, чтобы понять, что это такое?
WinCupl - это что такое? И где можно скачать, чтобы понять, что это такое?
Это программа для компиляции и симуляции программируемых логических матриц типа PAL, GAL и т.д. Это когда кучу логики можно запихать в одну микруху.
Скачать можно с сайта www.atmel.com правда надо зарегистрироваться и тогда получишь ключик и бесплатно скачаешь :) .
Powered by vBulletin® Version 4.2.5 Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot