Soviet Union ZX Spectrum CommunityПятница, 19.04.2024, 18:33
Вы вошли как Гость | Группа "Гости" | RSS
 [ · Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Soviet Union ZX Spectrum Community » ZX-строительство » Железо » Pentagon by Northwood
Pentagon by Northwood
Black_CatДата: Среда, 01.07.2020, 16:12 | Сообщение # 1
Координатор
Группа: Координаторы
Сообщений: 715
Статус: Offline
1. Сигналы DOS/, IODOS/ для NemoBus v.1.2



Цепи DOS/, DOS на выходе DD29 идущие на дешифрацию портов разорвать, и в разрыв врезать схему. Цепи, идущие на выборку ПЗУ оставить как есть.
Прикрепления: 8323490.png (30.3 Kb)


"Трудно найти чёрную кошку в тёмной комнате.. ...особенно, если её там нет", "Forever!".
"Я никогда не причиняю им зла. Я говорю им правду, и они думают, что это - зло."
Гарри Трумэн
 
Black_CatДата: Суббота, 25.07.2020, 18:07 | Сообщение # 21
Координатор
Группа: Координаторы
Сообщений: 715
Статус: Offline
13. Ошибки при разработке менеджера памяти.

Хотя NemoBus v.1.2 позволяет подключить любой внешний менеджер памяти, отключив менеджер памяти на мамке, тем не менее укажу ошибки допущенные при разработке менеджера памяти на мамке.

1) Информация о менеджерах памяти KAY-1024 и ZXM-Phoenix 2048 у автора неверная, хотя она есть в свободном доступе в BC Info Guide #4 "Путеводитель по портам ZX Spectrum" и в BC Info Guide #10 "Путеводитель по эволюции развития архитектуры ZX Spectrum". Более того, в последнем есть даже готовое описание рекомендованного объединительного менеджера памяти на 4Мб для всех отечественных архитектур клонов Спектрума, с которым автор явно не ознакомился прежде чем изобретать уже изобретённый велосипед.

2) В следствие недостаточной информированности автора как в истории развития архитектуры клонов Спектрума, так и идеологии её развития, критерии создания менеджера памяти были выбраны неверно, и как следствие этого, результат получился соответствующий - усилий затрачено много, а разработка менеджера на уровне информированности середины 90х, что обесценивает всю ту большую работу, что была проделана автором.


"Трудно найти чёрную кошку в тёмной комнате.. ...особенно, если её там нет", "Forever!".
"Я никогда не причиняю им зла. Я говорю им правду, и они думают, что это - зло."
Гарри Трумэн
 
Black_CatДата: Воскресенье, 02.08.2020, 19:57 | Сообщение # 22
Координатор
Группа: Координаторы
Сообщений: 715
Статус: Offline
14. Модульная слотовая система NemoBus.

Модульность добавляет архитектуре гибкости в её конфигурировании. В Спектруме принцип модульности заложен изначально через его интерфейс расширения ZXBus, а впоследствии через шину NemoBus. Последняя версия NemoBus v.1.2, помимо базовых возможностей ZXBus, позволяет так же вынести на внешние модули функции менеджера памяти, контроллера прерываний, контроллера ПДП, что позволяет гибко расширять базовую архитектуру Спектрума в зависимости от поставленных задач. При этом для расширения периферийного оборудования предназначены слоты для карт расширения NemoBus, а для системного расширения предназначен краевой разъём, расположение которого относительно слотов можно посмотреть в компьютере ZXM-Phoenix. На рисунке ниже, в разрезе для вида от задней стенки системного блока формфактора mATX, показаны возможные конфигурации подключения периферийных карт расширения и карты системного расширения:



На двух нижних рисунках показано как реализуется наращивание этажерки периферийных плат, если на материнской плате есть дочерняя плата.
Замечу так же, что первые две картинки сделаны для материнской платы формфактора mATX и такого же корпуса, а третья, соответственно, для ATX. Для ATX материнки и корпуса, возможное количество установленных плат расширения пропорционально увеличится на 6 штук (до упора в дочернюю плату) по сравнению с mATX (т.е. в сумме 12 шт.), но т.к. такого количества плат расширения NemoBus на сегодняшний день не существует в природе, то для платы ATX необходимость в адаптере для смещения плат никогда не возникнет :) .
Периферийные платы помимо крепления в слотах так же фиксируются планками на задней стенке. С учётом того, что в ATX корпусе 7 окон под планки, а в mATX корпусе 4 окна, то платы собранные в этажерку выше третьего слота в этих корпусах получают дополнительное крепление к задней стенке соответственно, с помощью четырёх, или одной планки.
Прикрепления: 5113529.png (67.4 Kb)


"Трудно найти чёрную кошку в тёмной комнате.. ...особенно, если её там нет", "Forever!".
"Я никогда не причиняю им зла. Я говорю им правду, и они думают, что это - зло."
Гарри Трумэн
 
NorthwoodДата: Понедельник, 10.08.2020, 19:47 | Сообщение # 23
80h
Группа: Пользователи
Сообщений: 131
Статус: Offline
13) Спасибо за подсказку по менеджеру памяти. Только ошибка у меня касалась не КАЯ-1024, а Скорпиона-1024 и Феникса-2048.
Исправил, добавил 1FFD бит 6, в 2-х из 16-и комбинациях выбора стандарта, появились следующие:

Scroption-1024: (доступно как при установке модуля SIMM 1MB, так и SIMM 4MB)
1FFD бит 4
1FFD бит 6
1FFD бит 7

Phoenix-2048: (доступно при установке модуля SIMM 4MB)
1FFD бит 4
1FFD бит 6
1FFD бит 7
7FFD бит 7
и бонусом 7FFD бит 6 (4 MB).


Сообщение отредактировал Northwood - Понедельник, 10.08.2020, 19:48
 
Black_CatДата: Вторник, 11.08.2020, 01:00 | Сообщение # 24
Координатор
Группа: Координаторы
Сообщений: 715
Статус: Offline
:) Ну неправильно же, лень посмотреть в руководство что ли :) Первый метр у Феникса такой же как у КАЯ:

A17' - D4 #1FFD
A18' - D7 #7FFD
A19' - D7 #1FFD

У КАЯ, к сожалению, весовые коэффициенты именно такие, и это не моё хотение. У Феникса ещё:

A20' - D6 #1FFD

Адреса A14'-A20' - доступны всегда - "для Z80 двух мегабайтов хватит всем!" © :), а A21' - D5 #1FFD = D5 #7FFD доступен только в режиме All RAM mode, который может быть включен токо из режима ядра (я его называю Kernel mode, у тебя этот режим называется Setup mode). All RAM mode нужен только при работе под ОС, и как исключение, для запуска единственной AloneCoder'ской программы, юзающей метр через D5 #7FFD. Впредь D5 #7FFD в программах вообще использовать категорически не рекомендуется, в любом качестве, т.е. устанавливать всегда D5=0 #7FFD.

Соответственно для Pentagon-512:

A17' - D6 #7FFD
A18' - D7 #7FFD

т.е. от менеджера КАЯ отличается токо A17'.
Для Profi:

A17' - D0 #DFFD
A18' - D1 #DFFD
A19' - D2 #DFFD

Про Scorpion более чем 256k вааще следует забыть, т.к. не существует ни одной уникальной программы сугубо под Scorpion-1024 менеджер памяти, да и вааще, для подсчёта программ под этот менеджер памяти достаточно будет двух пальцев. Так что менеджер Scorpion-1024 не стоит даже потраченных на него микросхем, и о нём следует забыть как о неудачном эксперименте, который сейчас никому больше не нужен.

Таким образом общий менеджер получается таким:

A17' - D0 #DFFD=D4 #1FFD=D6 #7FFD
A18' - D1 #DFFD=D7 #7FFD
A19' - D2 #DFFD=D7 #1FFD
A20' - D6 #1FFD
A21' - D5 #1FFD

Этот менеджер отличается от твоего тем, что A17', A18', A19'  реализуются на отдельных триггерах с мультиплексированными входами на разные разряды данных и с записью по нескольким адресам. Такой подход, в отличие от твоего, позволяет юзать в любой последовательности разные менеджеры памяти без креша программ, что в твоём менеждере невозможно. Например, использовать по очереди разные менеджеры могут программы с автоопределением менеджера памяти.

P.S. И самое бесполезное что у тебя есть, это CP/M менеджер памяти +3 :) . Совершенно бесполезный расход микросхем, учитывая что для CP/M +3 нужен контроллер дисковода +3, которого ни у кого нет, и даром он никому не нужен, и никогда, никем не будет использован, а место на и так слишком перегруженной плате он занимает :) . Для OS +3е этот менеджер памяти тоже даром не нужен, т.к. эта ОС работает только со спектрумовским менеджером памяти. Поэтому, зачем этот бесполезный менеджер у тебя на плате, для меня загадка :)


"Трудно найти чёрную кошку в тёмной комнате.. ...особенно, если её там нет", "Forever!".
"Я никогда не причиняю им зла. Я говорю им правду, и они думают, что это - зло."
Гарри Трумэн
 
NorthwoodДата: Вторник, 11.08.2020, 09:34 | Сообщение # 25
80h
Группа: Пользователи
Сообщений: 131
Статус: Offline
А кому нужно переключать стандарты расширения памяти на лету во время работы уже загруженной программы ?
 
Black_CatДата: Вторник, 11.08.2020, 10:14 | Сообщение # 26
Координатор
Группа: Координаторы
Сообщений: 715
Статус: Offline
Цитата Northwood ()
А кому нужно переключать стандарты расширения памяти на лету во время работы уже загруженной программы ?

:) А зачем вообще специально переключать менеджеры памяти? :) Правильно спроектированный менеджер памяти для программ прозрачен, и его не требуется специально переключать ни программно ни руками :) .

В режиме многозадачности разные задачи могут использовать разные менеджеры, и без автоматического переключения менеджеров памяти режим многозадачности просто не возможен. Твоя архитектура не позволяет использовать режим многозадачности. Зачем изначально закладывать в архитектуру нового компьютера принципиальные ограничения на уровне 90х годов прошлого века мне не понятно. Сейчас же не 90 год чтоб тумблерами конфигурации переключать :)


"Трудно найти чёрную кошку в тёмной комнате.. ...особенно, если её там нет", "Forever!".
"Я никогда не причиняю им зла. Я говорю им правду, и они думают, что это - зло."
Гарри Трумэн
 
NorthwoodДата: Вторник, 11.08.2020, 12:38 | Сообщение # 27
80h
Группа: Пользователи
Сообщений: 131
Статус: Offline
Спасибо, ты прав. Так действительно будет удобно. Только я добавлю к A19' ещё #7FFD бит 5 с возможностью его отключения через BIOS. Это нужно для работы демки "Nedodemo"  Alone Cider-а, который требует конфигурацию Pentagon-1024 с этим битом вместо блокировки. Эта демка уникальна тем, что использует Turbo-Sound FM-часть и видеорежим 16 Colors.

Сообщение отредактировал Northwood - Вторник, 11.08.2020, 14:09
 
Black_CatДата: Вторник, 11.08.2020, 15:13 | Сообщение # 28
Координатор
Группа: Координаторы
Сообщений: 715
Статус: Offline
Цитата Northwood ()
Только я добавлю к A19' ещё #7FFD бит 5 с возможностью его отключения через BIOS. Это нужно для работы демки "Nedodemo"  Alone Cider-а, который требует конфигурацию Pentagon-1024 с этим битом вместо блокировки. Эта демка уникальна тем, что использует Turbo-Sound FM-часть и видеорежим 16 Colors.

Это не нужно. Использовать D5 #7FFD в качестве A19' было абсолютно безграмотным и технически не обоснованным решением AloneCoder'а, и повторять эту безграмотность в наше время нет смысла. Программы, юзающие такой менеджер проще либо вааще переделать, либо как я говорил выше, юзать в специальном однозадачном режиме All RAM, когда программам разрешается доступ ко всем 4Мб, в т.ч. к A21' - D5 #1FFD = D5 #7FFD. Правда, при этом такая программа будет "размазана" по всем 4Мб, ну да и хрен с ней - в однозадачном режиме не жалко :) .


"Трудно найти чёрную кошку в тёмной комнате.. ...особенно, если её там нет", "Forever!".
"Я никогда не причиняю им зла. Я говорю им правду, и они думают, что это - зло."
Гарри Трумэн
 
NorthwoodДата: Воскресенье, 16.08.2020, 11:02 | Сообщение # 29
80h
Группа: Пользователи
Сообщений: 131
Статус: Offline
Новый менеджер памяти, который войдёт в окончательную схему. На схеме я не нарисовал резисторы на выходах MEM_256, MEM_512, MEM_1M, MEM_2M и MEM_4M.
Ну и 5-й бит #7FFD я всё-таки ввёл на схему с возможностью его отключения через меню BIOS-Setup, в остальном схема полностью соответствует твоему описанию того, что должно быть.

Пусть пользователи сами решают, использовать #7FFD D5 или нет. В прошивке BIOS я по-умолчанию буду отключать этот бит, при желании пользователя, он в любой момент сможет его включить или отключить.

Эта схема уже введена в полную схему компьютера, осталось только провести оптимизацию по использованию логических элементов.

Прикрепления: 1506164.png (94.4 Kb)


Сообщение отредактировал Northwood - Воскресенье, 16.08.2020, 11:08
 
Black_CatДата: Понедельник, 17.08.2020, 09:48 | Сообщение # 30
Координатор
Группа: Координаторы
Сообщений: 715
Статус: Offline
Таки имею замечания:

1) Оч хорошо, шо таки выбросили бессмысленный менеджер CP/M +3. Если нужна CP/M, то в СССР был свой Спектрум с хорошо развитым CP/M режимом - Profi, и в связи с этим было бы неплохо вспомнить, что функционально D4 #DFFD = D0 #1FFD. Правда D4=1 #DFFD попутно отключает так же блокировку D5 #7FFD. Но т.к. для D0 #1FFD сейчас никакого ПО не существует, то вполне допустимо и ему присвоить такую функцию в этом клоне. Т.е. предлагаю добавить в схему так же мультиплексор на триггер D4 #DFFD = D0 #1FFD с блокировкой D5 #7FFD.

2) Ещё по #1FFD. Для справки, архитектура которая получилась при объединении четырёх отечественных менеждеров памяти называется SKAY2P, т.е. Scorpion256+KAY1024+Pentagon512+Profi1024. Но для полного менеджера памяти Scorpion256, надо ещё добавить функцию безусловного включения страницы ROM0 в окно CPU0 при D1=1 #1FFD, которая у тебя почему-то повешена на D3 #1FFD, что не правильно. В свою очередь, для полного менеджера KAY, надо чтобы по D3=1 #1FFD инвертировалась адресеая линия ПЗУ RA15. Схемотехнику можно посмотреть в Фениксе, который кстати имеет архитектуру SKAY, т.е. Scorpion256+KAY1024.

3) И таки подумай на счёт переделки дешифрации портов #xxFD, а лучче и всей дешифрации по примеру https://zx.clan.su/forum/8-166-1178-16-1594073502 что я дал выше. Подобный дешифратор на ПЗУ ставился на последних ревизиях Феникса, хотя предложенный вариант более опимизирован по количеству микросхем и быстрее чем в Фениксе. Для наглядного примера ещё посмотри как правильно реализовывается дешифрации портов #xxFD на рассыпухе на рисунке ниже. Как видишь, при A15=0 и обращении out©,a в дешифрации используются A14, A15, а при A15=0 и обращении out(#fd),a в дешифрации используется только A15, а A14 принудительно устанавливается в единицу. При A15=1 ловушка не используется. Как видишь, это делается на порядок проще чем у тебя, но самый эффективный дешифратор будет всё же на ПЗУ. Обрати внимание, что при дешифрации #1FFD/#7FFD не используется A13, A12, т.к. при обращении out(#fd),a это приведёт к некорректной дешифрации. А у тебя в менеджере в мультиплексорах, и в самом дешифраторе ошибочно используется A13 без привязки к A15=1, что приведёт к неправильной выборке при обращении out(#fd),a. Это надо исправить.
И немного теории: такой дешифратор распознает корректно #1FFD/#7FFD/#DFFD только при корректном обращении программ к адресу A15. Но не секрет, что в 90х годах были малограмотные люди, которые программировали под переделанные ими же Пентагоны с отключенными старшими адресами. Ессно, что такие некорректные программы работать не будут, и поддерживать их аппаратно не нужно принципиально. Например, ни в конфиге PentEvo, ни в TS-конфиге такие программы не поддерживаются и работать не будут, и это правильно, и никто на это до сих пор не жаловался. Это принципиальная позиция и это нужно иметь ввиду при общении с любителями тумблеров и некорректной схемотехники.



4) И таки у тебя здесь ошибочка:

Прикрепления: 3611866.png (157.8 Kb) · 0252647.png (24.6 Kb)


"Трудно найти чёрную кошку в тёмной комнате.. ...особенно, если её там нет", "Forever!".
"Я никогда не причиняю им зла. Я говорю им правду, и они думают, что это - зло."
Гарри Трумэн
 
NorthwoodДата: Понедельник, 17.08.2020, 11:21 | Сообщение # 31
80h
Группа: Пользователи
Сообщений: 131
Статус: Offline
Цитата Black_Cat ()
4) И таки у тебя здесь ошибочка:

Там нет ошибочки, поскольку на тактовый вход триггера DD1:2 не приходит выборка порта #1FFD.
Но схему можно упростить, убрав DD7:1 и DD6:2, тогда тактовые входы всех трёх ТМ2 можно объединить и даже заменить две ТМ2 на одну ТМ9. Тогда указанное тобой соединение сделать нужно обязательно.


Сообщение отредактировал Northwood - Понедельник, 17.08.2020, 11:24
 
Black_CatДата: Понедельник, 17.08.2020, 12:25 | Сообщение # 32
Координатор
Группа: Координаторы
Сообщений: 715
Статус: Offline
Цитата Northwood ()
Но схему можно упростить, убрав DD7:1 и DD6:2, тогда тактовые входы всех трёх ТМ2 можно объединить и даже заменить две ТМ2 на одну ТМ9. Тогда указанное тобой соединение сделать нужно обязательно.

Типа того:

Прикрепления: 1861430.png (178.1 Kb)


"Трудно найти чёрную кошку в тёмной комнате.. ...особенно, если её там нет", "Forever!".
"Я никогда не причиняю им зла. Я говорю им правду, и они думают, что это - зло."
Гарри Трумэн
 
NorthwoodДата: Понедельник, 17.08.2020, 13:07 | Сообщение # 33
80h
Группа: Пользователи
Сообщений: 131
Статус: Offline
3) дешифрациию портов на флеш-ПЗУ я делать не буду по указанной тобой причине - самая быстрая ПЗУ имеет задержку распространения сигнала 45 нс, это больше половины периода 71.43 нс при тактовой частоте 14 МГц процессора, которая используется в данном проекте.

Сообщение отредактировал Northwood - Понедельник, 17.08.2020, 13:08
 
Black_CatДата: Понедельник, 17.08.2020, 15:27 | Сообщение # 34
Координатор
Группа: Координаторы
Сообщений: 715
Статус: Offline
Цитата Northwood ()
Там нет ошибочки, поскольку на тактовый вход триггера DD1:2 не приходит выборка порта #1FFD.

Хорошо.

Цитата Northwood ()
3) дешифрациию портов на флеш-ПЗУ я делать не буду по указанной тобой причине - самая быстрая ПЗУ имеет задержку распространения сигнала 45 нс, это больше половины периода 71.43 нс при тактовой частоте 14 МГц процессора, которая используется в данном проекте.

Во-первых, это не факт, что не будет успевать на 14МГц. Во-вторых, дешифраторы на рассыпухе не намного быстрее, в среднем процентов на 20, да и если на то пошло, нет смысла на 14 МГц обращаться к портам, просто переключайся на время обращения в нетурбо, как сделано в КАЕ, хотя в Фениксе даже более медленный дешифратор на ПЗУ работает на 7МГц. Вон у Профи все порты на вейтах, и за всё время об этом никто и не вспомнил, зато про надёжность Профи знают все. Для работы в турбе нет никаких ограничений на торможение портов. Зато простота и гибкость дешифратора на ПЗУ окупает все недостатки - это гораздо важнее. Впрочем, не буду настаивать, это не принципиально - решай сам :) .


"Трудно найти чёрную кошку в тёмной комнате.. ...особенно, если её там нет", "Forever!".
"Я никогда не причиняю им зла. Я говорю им правду, и они думают, что это - зло."
Гарри Трумэн
 
NorthwoodДата: Понедельник, 17.08.2020, 23:03 | Сообщение # 35
80h
Группа: Пользователи
Сообщений: 131
Статус: Offline
Цитата Black_Cat ()
Для работы в турбе нет никаких ограничений на торможение портов.

Зато в моём случае получается максимальная скорость работы с HDD в турбо-режимах как раз благодаря отсутствия торможения при работе с HDD. Нет необходимости тормозить абсолютно все порты.

Добавлено (17.08.2020, 23:19)
---------------------------------------------
Цитата Black_Cat ()
2) Ещё по #1FFD. Для справки, архитектура которая получилась при объединении четырёх отечественных менеждеров памяти называется SKAY2P, т.е. Scorpion256+KAY1024+Pentagon512+Profi1024. Но для полного менеджера памяти Scorpion256, надо ещё добавить функцию безусловного включения страницы ROM0 в окно CPU0 при D1=1 #1FFD, которая у тебя почему-то повешена на D3 #1FFD, что не правильно. В свою очередь, для полного менеджера KAY, надо чтобы по D3=1 #1FFD инвертировалась адресеая линия ПЗУ RA15. Схемотехнику можно посмотреть в Фениксе, который кстати имеет архитектуру SKAY, т.е. Scorpion256+KAY1024.

Распиновку порта #1FFD я взял из схемы Пентагона-1024 1.4 от KOE. Как я понял, то там менеджер памяти соответствует Кай-1024. И я предположил, что ошибок в распиновке этого порта нету. Но теперь скачаю оригинальную схему Кая и посмотрю там.


Сообщение отредактировал Northwood - Понедельник, 17.08.2020, 23:19
 
Black_CatДата: Вторник, 18.08.2020, 00:26 | Сообщение # 36
Координатор
Группа: Координаторы
Сообщений: 715
Статус: Offline
Цитата Northwood ()
Распиновку порта #1FFD я взял из схемы Пентагона-1024 1.4 от KOE. Как я понял, то там менеджер памяти соответствует Кай-1024. И я предположил, что ошибок в распиновке этого порта нету. Но теперь скачаю оригинальную схему Кая и посмотрю там.

КоЕ как раз здесь не то не разобрался, не то решил отсебятины добавить, но сделал не так как в КАЕ. У КоЕ бывают странности, например развёрнутые задом-наперёд слоты. Но главное, что даже признавая, что ошибся, он эти ошибки не исправляет :) . Так что не надо копировать в своих устройствах ошибки КоЕ, пусть они остаются в его конструкциях :) . Посмотри схемотехнику для D1,D3 #1FFD в Фениксе, там в этом узле моя схемотехника, так что там всё правильно. А в КАЕ ты сможешь посмотреть токо D3 #1FFD, а D1 #1FFD там нет, т.к. это из Скорпиона.

И возвращаясь о5 к твоему дешифратору, из-за использования A13 он не везде будет работать корректно. Например для трекеров, сплошь и рядом типично обращение к #FFFD по адресу #C0FD. На приведённом выше примере моего дешифратора проблем не будет, а у тебя вместо AY будет обращение к #DFFD с вполне предсказуемым результатом.


"Трудно найти чёрную кошку в тёмной комнате.. ...особенно, если её там нет", "Forever!".
"Я никогда не причиняю им зла. Я говорю им правду, и они думают, что это - зло."
Гарри Трумэн
 
NorthwoodДата: Вторник, 18.08.2020, 09:05 | Сообщение # 37
80h
Группа: Пользователи
Сообщений: 131
Статус: Offline
Если в треккерах в коде присутствует LD A,#C0; OUT (#FD),A и обращение пойдёт к порту #C0FD, тогда одних A14 и A15 для разделения портов #FFFD и #DFFD будет мало. Нужно знать, какие вообще возможны варианты при программировании AY.

Добавлено (18.08.2020, 09:36)
---------------------------------------------
По Каю-1024 у меня тоже возникли вопросы:

1) На А14_ПЗУ сигнал приходит непосредственно с D4_#7FFD, а на А15_ПЗУ - сигнал DOS/ (через ЛП5, что при неиспользовании порта #1FFD означает, что сигнал DOS/ приходит тоже непосредственно). Т.е. отсутствует схема, которая бы обеспечивала включение ПЗУ TR-DOS в режиме DOS независимо от состояния D4_#7FFD. В КАЕ если попытаться включить ПЗУ "BASIC-128" в режиме DOS, то неминуемо попадаем в ROM0.

2) Мне непонятен смысл просто инвертировать A15_ПЗУ при D3=1 #1FFD. Но таки да, в Кае этот сигнал просто инвертируется. Получается вот что:

D4=0 #7FFD, D3=0 #1FFD = Menu-128;
D4=1 #7FFD, D3=0 #1FFD = Basic-48;
D4=0 #7FFD, D3=1 #1FFD = ROM0;
D4=1 #7FFD, D3=1 #1FFD = TR-DOS;

И в режиме DOS:

D4=0 #7FFD, D3=0 #1FFD = ROM0;
D4=1 #7FFD, D3=0 #1FFD = TR-DOS;
D4=0 #7FFD, D3=1 #1FFD = Menu-128;
D4=1 #7FFD, D3=1 #1FFD = Basic-48;

И для чего это ? Может быть просто на плате не хватило свободных логических элементов, чтобы сделать нормальную переключалку страниц ПЗУ ? Может быть КоЕ правильно понял идею, для чего нужен D3 #1FFD - для доступа к ROM0 и он это сделал более корректно ?


Сообщение отредактировал Northwood - Вторник, 18.08.2020, 09:39
 
Black_CatДата: Вторник, 18.08.2020, 10:23 | Сообщение # 38
Координатор
Группа: Координаторы
Сообщений: 715
Статус: Offline
Цитата Northwood ()
Нужно знать, какие вообще возможны варианты при программировании AY.

Я уже всё это учёл, когда делал дешифратор. Для корректной дешифрации можешь использовать мой принцип - в дешифрации #7FFD, #BFFD, #FFFD нельзя использовать любые старшие адреса кроме A14, A15. Для #DFFD дешифрация по A12-A15 с блокировкой AY при выборе #DFFD (у меня блокировка чуть упрощённая, токо по A12-A13 - этого достаточно). Любые дешифраторы нарушающие этот принцип, будут работать заведомо некорректно!

Цитата Northwood ()
И для чего это ? Может быть просто на плате не хватило свободных логических элементов, чтобы сделать нормальную логику переключения страниц ПЗУ ?

В КАЕ сделана относительная выборка страниц ПЗУ, т.е. с помощью D4 #7FFD, D3 #1FFD можно выбрать любую страницу, зная в какой ты находишься сейчас. Этого достаточно. А в Скорпионе по D1 =1 #1FFD сделана безусловная выборка ROM0, независимо от состояния  D4 #7FFD, D3 #1FFD. А в Фениксе есть и то и другое, т.к. он поддерживает обе эти архитектуры.


"Трудно найти чёрную кошку в тёмной комнате.. ...особенно, если её там нет", "Forever!".
"Я никогда не причиняю им зла. Я говорю им правду, и они думают, что это - зло."
Гарри Трумэн
 
NorthwoodДата: Вторник, 18.08.2020, 19:16 | Сообщение # 39
80h
Группа: Пользователи
Сообщений: 131
Статус: Offline
Сделал свой вариант дешифратора портов, но который отвечает выше описанным требованиям:

Порт #7FFD в старшем байте дешифрируется двумя старшими разрядами A14 и A15. При команде OUT (#FD),A дешифрация в старшем байте становится мягкой - только по A15.
Порты AY - #BFFD и #FFFD в старшем байте дешифрируется двумя старшими разрядами A14 и A15.
Порты #DFFD и #1FFD в старшем байте дешифрируются 4-я разрядами - A12, A13, A14 и A15. При срабатывании выбора порта #DFFD блокируется AY по обеим линиям - BC1 и BDIR.

Так же реализовал D1 #1FFD - безусловный выбор ROM0 и D3 #1FFD - инвертирование ROM_A15 при условии, что не включен безусловный выбор ROM0.

На всё про всё понадобилось добавить только 1 корпус КР1533ИД7.



Сообщение отредактировал Northwood - Вторник, 18.08.2020, 19:18
 
Black_CatДата: Среда, 19.08.2020, 10:59 | Сообщение # 40
Координатор
Группа: Координаторы
Сообщений: 715
Статус: Offline
Цитата Northwood ()
Сделал свой вариант дешифратора портов, но который отвечает выше описанным требованиям

:) Давай я нарисую как мой интегрировать, глядишь и не надо будет добавлять микросхем.
И ты не до конца всё исправил, т.к. забыл про мультиплексоры, переключающие разряды данных. Там тож есть A13, а значит корректно оно работать не будет. Глянь у меня менеджер, там мультиплексоры переключаются A15 и чипселектом вместо адреса, при том в дешифрации чипселекта тож юзаются токо A14,A15. Ты не торопись везде рапортовать об изменениях, это можно будет сделать и один раз в конце :)


"Трудно найти чёрную кошку в тёмной комнате.. ...особенно, если её там нет", "Forever!".
"Я никогда не причиняю им зла. Я говорю им правду, и они думают, что это - зло."
Гарри Трумэн
 
Soviet Union ZX Spectrum Community » ZX-строительство » Железо » Pentagon by Northwood
Поиск:

Copyright MyCorp © 2006Сайт управляется системой uCoz