Вход

Просмотр полной версии : Блокировка RОМ,RAM в ZX совместимых



Totem
24.01.2016, 18:17
Вечер добрый!
Как безболезненно для ZX , блокировать чтение/запись ПЗУ и ОЗУ одновременно?
пока самое простое решение, через 74F244 завести сигналы и отрубать при выборе расширенной конфигурации.
Нужно для доступа к внешней видео памяти CPU в младшие 24Кб.

Djoni
25.01.2016, 00:26
Можно поподробней с картинками :v2_dizzy_botan:

Totem
25.01.2016, 10:44
нужен кусок схемы любого "клона" где на ,"быстрый "буфер заводятcя сигналы типа csrom wrbuf we и тп? или того, что назовут ересью ? :) и будут рассуждать как мне делать блиттер? :)
чи0рный коте, предлагает следущее
http://zx.clan.su/forum/7-57-1
D3 #EDF7 (#EFF7) совместно с битом D0 #1FFD задаёт режим работы страниц ОЗУ и ПЗУ подставляемых в окно CPU0.
это не вариант, нужно читать и писать из этой памяти.

bigral
25.01.2016, 15:45
это не вариант, нужно читать и писать из этой памяти.

Обсуждалось много раз, ввиду того что стандарта доступа на шину памяти zx spectrum как такового нету, единственный вариант записи в память спектрума - отрубление z80 от шины и эмуляция его доступа к памяти (учитывая что некоторые клоны используют в качестве wait-a останов CLK, другие wait, третие без-wait режим). Данная схема может существовать в теории, но на практике вероятно проще заставить сам Z80 "отвлечься" по NMI например и перебросить шото куда-то (опять же, даже такое решение вполне может глюконуть или конфликтовать на на некоторых клонах).

Totem
25.01.2016, 15:57
:) не так, z80 читает и пишет во внешний sram карты и дублироваться в основную не будет совсем. это память(sram) мапится на место пзу и куска рам.
щелкаем битом в порту блокируется запись/чтение ram/rom. пишем /читаем V банка и банк со спрайтами.

balu_dark
25.01.2016, 16:25
Короче - мы говорим о Multiface128 насколько я понимаю.
И если не изменяет память Disciple.

solegstar
25.01.2016, 16:42
щелкаем битом в порту блокируется запись/чтение ram/rom.
если смотреть по схеме пентагона 128, то блокировать пзу можно единицей на сигнале С13, а ОЗУ единицей на 11 выводе D50. перед этими сигналами/контактами стоят разделяющие резисторы 470 Ом. Если внедряться в схему, то лучше делать развязку на транзисторе по схеме с ОК. Тут идея в том, чтобы говорить схеме, что ни ОЗУ, ни ПЗУ не попадают в свою область распределения по памяти, т.е. сигналы А14-А15 шины адреса не соотв. выбраному типу памяти.

Totem
25.01.2016, 21:31
Для внешнего устройства втыкаемого в шину NemoBus есть стандартные средства для управления в CPU0, с помощью которых можно отключить ОЗУ и ПЗУ прямо с шины. Это делается установкой на шине BLK=0, RDR/=1, если CSR/=0. Если CSR/=1, то внешнее устройство обязано перевести свои выходы BLK и RDR/ в Z состояние. У оригинального ZX Spectrum внешнее устройство благодаря резистивной развязке может так же блокировать чтение из CPU1 компьютера, но не может блокировать запись туда.
(с)Чи0рны Коте

solegstar
25.01.2016, 22:07
Totem, вот если бы Вы сразу сказали, что блокировать нужно со слота, это одно, но про слот то ничего не написано в первом сообщении, поэтому я и дал вариант как безболезненно блокировать для zx озу и пзу, а именно для пентагона 128. :)

Totem
25.01.2016, 22:17
к сожалению, этот вариант не подходит, код и данные тогда надо иметь в памяти карты или щелкать постоянно портом для чтения записи одного байта предавая данные в регистре, что само по себе некрасиво. остается вариант спринетра префиксом.
у себя конечно могу отключать 0 банк и работать из 1, (2 физически разные микросхемы) но на большинстве клонов не получится увы.
можно конечно подставлять любую страницу в CPU 0, пущай пишет дублирует, но опять это большинство не умеет.

ram_scan
27.01.2016, 11:47
Технически проще всего отмапить внешнюю видеопамять страницами как часть/целый ROM (если ее читать нинада). Если нада - сделать отдельную защелку чтобы отдавалась там на чтение. Все остальные движняки по отрубанию памяти - неистребимый геморрой на всю задницу.

Totem
28.01.2016, 13:01
в "стандартном спеке", да .

bigral
28.01.2016, 13:52
в "стандартном спеке", да .

Та в любом спеке. BlackCat же сказал что конфигурация памяти в 128-ом (и совместимых с ним компах) контроллируется с-понтом-стандартным портом (рецепты на сайте BlackCat-a), так что любой другой порт меняющий конфиг памяти будет конфликтовать с существующим стандартом если делать его без согласования с УЖЕ наработанным BlackCat-ом материалом.

По поводу префиксов спринтера: Это ж типо как стандарт на интерфейс а не на реализацию! Т.е. в принципе в том же спринтере как я понимаю это делалось внутренним DMA (так как сам чипсет и этот DMA были одним целым то было известно когда можно лезть к памяти чтоб не мешать никому) но кому-то вполне может прийти в голову сделать такое на NMI тем же Z80 опять таки четко зная специфику схемы своего спекки и врубая нужную страничку со своим ПЗУ под это дело. К стати "врубая нужную страничку со своим ПЗУ под это дело" это же и есть суть этого треда. Т.е. вывод такой что в каждом отдельном клоне это должно быть сделанно по-своему но софт писать под это дело вполне получится так как стандарт будет оформлен в виде расширения команд z80 посути.

Totem
28.01.2016, 16:11
Та в любом спеке. BlackCat же сказал что конфигурация памяти в 128-ом (и совместимых с ним компах) контроллируется с-понтом-стандартным портом (рецепты на сайте BlackCat-a), так что любой другой порт меняющий конфиг памяти будет конфликтовать с существующим стандартом если делать его без согласования с УЖЕ наработанным BlackCat-ом материалом.

По поводу префиксов спринтера: Это ж типо как стандарт на интерфейс а не на реализацию! Т.е. в принципе в том же спринтере как я понимаю это делалось внутренним DMA (так как сам чипсет и этот DMA были одним целым то было известно когда можно лезть к памяти чтоб не мешать никому) но кому-то вполне может прийти в голову сделать такое на NMI тем же Z80 опять таки четко зная специфику схемы своего спекки и врубая нужную страничку со своим ПЗУ под это дело. К стати "врубая нужную страничку со своим ПЗУ под это дело" это же и есть суть этого треда. Т.е. вывод такой что в каждом отдельном клоне это должно быть сделанно по-своему но софт писать под это дело вполне получится так как стандарт будет оформлен в виде расширения команд z80 посути.

Мне это весьма понятно, с Котом общаемся,наработки почитываю. Я не пояснял для чего, это надо. Прикидывал есть ли способ, на стандартных ZX совместимых, реализовать задумку не сильно "порезав", увы нет. только страницы 16k, спринтер я "покурил", документашку,чтоб "вкурить" как его авторы за ним просидеть не один год надо :)

Totem
11.03.2016, 17:37
Мужчины, где можно подсмотреть схемку включения любой страницы в CPU0 ? MMU 180 , умеет работать только после нижних 4K. CPU 3 включается, как и на ZХ 7FFD.