Тоже за второй вариант.
Вид для печати
Тоже за второй вариант.
второй вариант
доклад:
заказ был сделан 27.06
кит. склад НП получил посылку 1.07
17.07 посылка прибыла
долго лежала на кит. складе НП , 11.07 отправилась из кит. шла через Азербайджан
доставка за 0,5кг вышла $6 , пересчет на грн. был в день поступления на таможню
Серия HCT , в какую категорию попадает LS, ALS, F ? или , вообще не подходит
Привет.
С интересом прочитал все.
Немного опоздал, но все таки спрошу по поводу flash-bright. Ни в схеме, ни в описании BIOS портов ненашел (может плохо искал). Будет ли его поддержка в окончательном варианте?
А так - очень интересная разработка!
кстате ВНЕЗАПНО вспомнил
если конечно на плате режим остался
для совместимости с новомодными мерзкими lcd
лучше делать переключение каждые 2 строки
иначе мерзкие lcd пытаясь делать из 50Гц прогрессивной развертки
ВНЕЗАПНО 25 Гц черезстрочной
испортят весь гигаскрин нафик
вот целая тема про эту мерзость
https://zx-pk.ru/threads/29109-lcd-l...interlace.html
да и черезстрочник шириной в 2 пикселя
лучше дружит с шахматными штриховками
которые ощутимо колбасит на черезстрочнике шириной 1 пиксель
хотя удвоенный черезстрочник
всеравно не спасает
https://jpegshare.net/images/82/36/8...3565fd420f.png
какие последние новости по теме - держите в курсе )
Последние новости:
Сейчас работа над проектом замедлилась, т.к. я с семьёй сейчас на море, но ноутбук у меня с собой, поэтому по мере появления времени и желания продолжаю работу.
Мне поступило множество советов, что лучше изменить и добавить в схему. С частью из них я целиком согласился и внёс эти изменения в схему и на плату. Но некоторые советы отбросил.
В схеме появилось несколько принципиальных изменений:
1) Буферизировал шину данных для портов ввода-вывода с помощью микросхемы К1531АП6 (DD67). При этом все ПЗУ, статическое ОЗУ, динамическое ОЗУ (вместе со своими собственными двумя буферами), а так же шина NemoBus и ZX-Bus по-прежнему подключена к шине данных процессора напрямую. А всё остальное - через новый буфер. Это должно решить (надеюсь) проблему стабильности работы iS-DOS на тактовой частоте 14 МГц при подключенной в слоты периферии. Микросхему буфера ШД пришлось разместить внутри панельки процессора Z84, иначе никак. Поэтому при сборке платы, если панелька под процессор будет иметь поперечные элементы, их придётся отломать.
2) Сделал формирователь сигнала ~IODOS, используемый на шине NemoBus 1.2, заодно разделив и сигнал ~DOS, подаваемый на шину, для возможности открытия портов TR-DOS от периферийного устройства. За принципиальную схему спасибо пользователю Black Cat, проанализировал её и добавил её в свой проект без изменений.
3) Передвинул все 3 слота NemoBus вправо таким образом, что теперь карты форм-фактора А можно устанавливать без никаких райзер-плат. Соответственно, райзер платы изготавливаться не будут, что удешевит в целом комплект плат, их теперь всего 3: Материнская плата, верхняя плата и плата шины ZX-Bus+3.
4) Очень не хотел, но для подключения внутреннего модема пришлось слот Extended-ISA заменить на простой 8-битый ISA. Это позволило освободить пространство на плате для размещения микросхем. проверил, воткнув модем с расширенным краевым слотом в 8-битый слот, гребёнка контактов модема до микросхем не достаёт, даже если микросхемы вставлять в плату не до конца.
5) По свежей спецификации шины NemoBus 1.2, для периферии должно быть доступно не 1 МБ ОЗУ, а все 4 МБ. Для этого 2 дополнительных сигнала A20` и A21` должны подаваться на контакты слота 30A и 30B вместо земли (в данной схеме эти два сигнала называются MEM_2M и MEM_4M). Для совместимости с картами расширения, на которых на этих двух контактах разведена земля, возле каждого слота я поставил по 2 джампера, которыми можно на эти контакты подать либо землю, либо два сигнала MEM_2M и MEM_4M. Соответственно, в схеме из BIOS я убрал возможность выбора, какой мегабайт из 4-х предоставлять карте расширения, т.к. теперь карта расширения получает в распоряжение все 4 МБ. Это актуально для DMA-Sound.
P.s.
6) Объединил вместе два порта #1FFD - основной и тот который для режима +3. Это позволило упростить схему и убрать лишний корпус микросхемы без потери функциональности.
Дорожки на плате пришлось переразводить с нуля, честно, от разводки материнки я уже подустал, поэтому сделал перерыв, чтобы отдохнуть от неё. Только что получил первый полностью разведённый вариант, но предстоит ещё долгая оптимизация. Поэтому выкладываю принципиальную схему и рисунок расположения элементов на материнской плате, без самой разводки.
https://i.ibb.co/bs06dhy/Main-Board-v8-0-sch.png https://i.ibb.co/pbMLb7S/Main-Board-...ponents-ps.png
Сомневаюсь, скорей всего нет, чем да. Но часть его советов были действительно полезные.
Но были и другие советы, которые я поставил под сомнение:
1) Порт Кемпстон джойстика сделать адресом #DF вместо #1F, но дешифрацию сделать упрощённую, чтобы откликался и на #DF, и на #1F, а для разделения его с Кемпстон мышью, использовать ловушку обращения к порту по короткой адресации, которая в схеме уже есть: при In A,(#DF) чтобы откликался джойстик, а при In A,(BC) - мышка. Цель - доступность джойстика при открытых портах TR-DOS. (Сомнительно).
2) Отказаться от индивидуальных адресов портов BIOS #xx37 и заменить их на #xxF7 с целью упрощения схемы дешифрации портов. Упрощение в реальности получится аж на 1 логический элемент ИЛИ, но самое главное, я считаю, что порты BIOS должны быть полностью независимыми от всех известных портов ZX-Spectrum, поэтому данный совет я отбросил категорически.
3) Отказаться от слота (папа) шины ZX-BUS +3 , заменив его на краевой слот (тоже папа) NemoBus, запаралелив его с мастер-слотом NemoBus, как на Фениксе. (Сомнительно).
4) Переместить слот ISA - модема вверх таким образом, чтобы в верхний слот NemoBus можно было воткнуть расширитель шины NemoBus. Здесь есть несколько препятствий:
а) материнская плата будет стоять в вертикальном корпусе ATX, и за счёт чего вся эта конструкция должна держаться, он так и не объяснил, хотя я несколько раз повторил этот вопрос;
б) по одну сторону от верхнего слота NemoBus будет верхняя плата, это неизбежно, а по другую сторону - другие карты расширения, воткнутые в остальные слоты NemoBus. Каким образом вся эта ёлка должна разделять общее пространство с другими платами, и как при этом собрать корпус ATX, осталось загадкой. Поэтому тоже сомнительно.
В плату войдёт новый полностью переделанный менеджер памяти 4 МБ. Вот его схема:
https://i.ibb.co/kMR62FZ/Memory-Controller.png
Кардинальное отличие его в том, что в старом нужно было через BIOS переключать стандарты расширения памяти, можно было их комбинировать между собой, было доступно 16 комбинаций для 3-х портов: #1FFD, #7FFD и #DFFD. Мультиплексирование было сделано после регистров портов.
В новой схеме переключение стандартов не нужно делать вообще, при этом доступны те же 3 порта расширения: #1FFD, #7FFD и #DFFD. Мультиплексирование сделано перед триггерами расширения ОЗУ.
Доступные конфигурации:
Pentagon-512: #7FFD, биты 6, 7 (5-й бит выполняет стандартную блокировку всех портов расширения памяти, превращая компьютер в 48-й);
Pentagon-1024: #7FFD, биты 6, 7, 5;
Profi-1024: #DFFD, биты 0, 1, 2;
Kay-1024: #1FFD бит 4, #7FFD бит 7, #1FFD бит 7;
Phoenix-2048: #1FFD бит 4, #7FFD бит 7, #1FFD биты 6, 7;
Pentagon-4096: #1FFD бит 4, #7FFD бит 7, #1FFD биты 6, 7, 5.
Т.к. из BIOS-а ушло управление конфигурацией памяти и осталась опция "включение блокировки #7FFD бит 5", то было целесообразно перенести все опции блокировок на порт BIOS #FC37.
Новое назначение портов BIOS:
#FC37 - Управление блокировками:
бит 0 - включение запрета записи в микросхему CMOS;
бит 1 - включение блокировки шины ZX-Bus+3, если включен стандартный режим;
бит 2 - включение блокировки шины NemoBus, если включен режим +3;
бит 3 - назначение бита 5 #7FFD: 0 = расширение памяти, 1 = блокировка всех портов (48-й режим);
бит 4 - запрет переключения портов BIOS #FC37 и #FD37 (защита конфигурации BIOS от вмешательства);
бит 5 - резерв;
бит 6 - включение режима записи Флеш-ПЗУ;
бит 7 - включение режима +3.
#FD37 - Управление теневым ОЗУ (без изменений)
#FE37 - Расширение видеорежимов (без изменений)
#FF37 - Управление ПЗУ:
бит 0 - 0 = ПЗУ BIOS, 1 = ПЗУ Спектрум;
бит 1 - сброс триггера Gluk Reset Service;
бит 2 - номер страницы ПЗУ BIOS;
бит 3 - резерв;
бит 4 - резерв;
бит 5 - резерв;
бит 6 - резерв;
бит 7 - резерв.
Так же из схемы удалил менеджер памяти +3, который используется только в ОС CP/M+3, которым всё-равно не получилось бы воспользоваться за неимением контроллера дисковода +3. Для DivIDE этот менеджер памяти не нужен.
Полная принципиальная схема после внесённых изменений:
https://i.ibb.co/9gqCT00/Main-Board-v8-0-sch.png
Ты не верно понял. Самые первые 2 варианта в списке описывают 6 и 7 биты порта #7FFD.
Страницы памяти в пределах 1 МБ можно выбирать по любому из трёх стандартов одновременно без никаких дополнительных переключений - Пентагон-512/1024, Профи-1024 и Кай-1024.
Причём, всё это доступно как при установленном модуле памяти 4 МБ, так и 1 МБ.
При установленном модуле памяти 4 МБ доступны два дополнительные бита 6 и 5 порта #1FFD, дополнительно становится доступным конфигурация Scorpion-1024, а так же Phoenix-2048, а так же все 4 МБ.
Но здесь нельзя комбинировать Пентагон-512 + Профи-1024.
Но может лучше вернуть как было - выбор конфигурации памяти через BIOS ? Там можно было делать любые комбинации, но в каждый момент времени доступна только одна из них.
лучше оставить как сейчас - имхо
Northwood, предыдущий менеджер памяти ведь проверен на практике в твоём Пентагоне?
Я за то, чтобы встраивать в новую плату только проверенные на практике доработки.
Предыдущий менеджер памяти в более простом виде работал у меня в предыдущем компьютере - Pentagon-128, расширенном до 1 МБ, и то без возможности комбинирования нескольких портов. В нём можно было через BIOS Setup выбирать только 1 из 3-х доступных портов - #7FFD, #DFFD/#FDFD и #1FFD.
Собирать ещё какие-то доработки в моём Пентагоне-1024 1.4, расширенном до 4МБ и с кучей бутербродов из микросхем и с паутиной МГТФ, уже практически нереально. Данный узел схемы не представляет какой-нибудь сложности, поэтому я знаю, что он заработает.
Кстати, переделал дешифрацию портов #7FFD, #DFFD, #1FFD, #BFFD и #FFFD по замечаниям, высказанным по поводу работоспособности некоторых музыкальных треккеров, использующих программирование AY через OUT (#FD),A:
Дешифрация портов #7FFD, #BFFD и #FFFD в старшем байте отныне сделана не по трём разрядам A13, A14 и A15, а только по двум - A14 и A15. При обращении к порту #7FFD через OUT (#FD),A, дешифрация #7FFD переводится на более мягкую - в старшем байте только по одному разряду A15.
Дешифрация портов #DFFD и #1FFD в старшем байте отныне сделана не по трём разрядам A13, A14 и A15, а по четырём - A12, A13, A14 и A15. При обращении непосредственно к порту #DFFD, порты AY блокируются.
Кроме этого, изменил назначение битов порта #1FFD:
бит 0 - включение ОЗУ в окно CPU0 (#0000-#3FFF) остаётся неизменным;
бит 1 - отныне безусловное включение 0-й страницы ПЗУ, как в Scorpion ZS-256. Раньше это было на 3-м бите, как было сделано КоЕ в Пентагоне-1024 1.4 по его личному хотению;
бит 2 - тоже без изменений - в режиме "+3" переключает страницы ПЗУ, а в стандартном режиме не производит никаких действий;
бит 3 - отныне инвертирует адресный разряд ПЗУ A15 - как в KAY-1024, но при условии, что не включена безусловно 0-я страница ПЗУ. Раньше безусловно включал 0-ю страницу ПЗУ;
бит 4 - расширение ОЗУ до 256 КБ;
бит 5 - расширение ОЗУ до 4 МБ;
бит 6 - расширение ОЗУ до 2 МБ;
бит 7 - расширение ОЗУ до 1 МБ.
https://i.ibb.co/dBqfK51/Main-Board-v8-0-sch-ps.png
Northwood, а какими битами щелкается память пентагон 512?
Я так и не нашел описания
закидывал по стандарту пентагон 1024 с отбрасыванием старшего бита
но в унриалах это не работало
дальше 8-й страницы не включалось
Конечно же битами 6 и 7, это стандарт. Отбрасывать нужно 5-й бит, потому что на всех компьютерах это бит блокировки верхней памяти, после включения которого ты остаёшься с 48 КБ памяти. Unreal Speccy поддерживает этот стандарт, по крайней мере те версии, которые были у меня до смерти жёсткого диска. Только в Unreale в конфиге нужно выставить тип верхней памяти Pentagon 1024.
блин я не тот бит отбросил тупо :v2_dizzy_facepalm:
а описание у меня правильное
- - - Добавлено - - -Цитата:
D6 - A17'
D7 - A18'
D5 - A19'
там и 512 есть
просто я распределял таблицы с номерами страниц чтоб работало и на 512 и на 1024
а в итоге работало только на 1024...
Какие новости проекта? Как там с производством плат?
Пришлось сделать ряд значительных изменений в менеджер памяти, а так же пересмотреть поддержку карты DivIDE:
По менеджеру памяти:
В этом проекте будет поддержка псевдо-многозадачности, позволяющая загружать одновременно до 31 программ. Как это будет выглядеть:
По-умолчанию будет доступен некий объём ОЗУ (1 МБ, 2 МБ или все 4 МБ, это нужно будет решить в ходе написания новой BIOS, т.к. определяться будет прошивкой BIOS).
Допустим, пользователь хочет загрузить сразу несколько программ. Пользователь нажимает кнопку "Magic", попадает в меню управления задачами. Там он выбирает объём памяти для задачи, расположение задачи в памяти будет выбираться автоматически, сохраняет, выходит в стандартный режим Меню-128, TR-DOS, Basic-48 или Gluk, где может загрузить программу. Далее снова нажимает кнопку "Magic", там он может создать новую задачу, выбрав для неё объём памяти, или переключиться на ранее созданную задачу, выходит либо в Меню-128, TR-DOS, Basic-48, Gluk для загрузки новой программы, или в прерванную ранее программу. Т.е. всегда выполняется только одна текущая задача, пользователь сможет в любой момент через кнопку Magic переключаться между задачами или создавать новые, если ещё есть свободная память.
Доступные объёмы памяти для задачи: 128 КБ, 256 КБ, 512 КБ, 1 МБ, 2 МБ или однозадачный режим - все 4 МБ. Соответственно, если всем задачам выделить по 128 КБ, то поместится 31 программа, а если по 1 МБ, то до 3-х задач объёмом 1 МБ + задачи с выделенным для них меньшего объёма ОЗУ (последние 128 КБ будут использоваться в многозадачном режиме для хранения карты занятой памяти, регистров процессора для каждой задачи, значения портов #7FFD, #DFFD, #1FFD и #EFF7 (в схеме не хватает чтения порта #EFF7, это необходимо, если программы используют расширенные видеорежимы), а так же для сохранения экрана 0-й задачи, который будет использоваться для диалога с пользователем). Экранная область в многозадачном режиме будет привязана к выбранной области ОЗУ.
Аппаратно многозадачный режим реализован новым менеджером памяти, схему которого я привёл прошлый раз, и 5-битной маской старших разрядов номера страницы ОЗУ, посредством порта BIOS #FC37.
Если определённый бит маски = 0, то соответствующий ему бит номера страницы ОЗУ доступен для свободного переключения программой, этот бит стандартно проецируется только на верхние адреса в пространстве #C000-#FFFF, и соответствующий бит проецирования экрана в видеоконтроллере = 0.
Если определённый бит маски = 1, то соответствующий ему бит номера страницы ОЗУ блокируется в заранее заданном состоянии, определяя расположение задачи в ОЗУ, этот бит проецируется на всё адресное пространство #0000 - #FFFF, а так же он поступает на видеоконтроллер для нацеливания экранов на эту область ОЗУ.
Дополнительно сделал одну доработку в самом менеджере памяти, позволяющую командами короткой адресации OUT (#FD), A управлять 256 КБ ОЗУ через порт #7FFD. Раньше через короткую адресацию было доступно только 128 КБ, т.е. теперь дополнительно доступен D6 #7FFD.
Сложность была с тем, чтобы определиться, как дать пользователям возможность выбора, куда попадать по кнопке Magic - в управление задачами или стандартно в КЕШ. В данной ревизии я решил воспользоваться опцией отключения доступа к КЕШ-памяти по кнопке Magic, которую я сделал ранее. Если в BIOS-Setup включить доступ к КЕШ-памяти, то по кнопке Magic будем попадать в КЕШ, соответственно, управление многозадачностью будет недоступно. Если в BIOS-Setup доступ к КЕШ-памяти по кнопке Magic отключить, тогда по этой кнопке будем попадать в управление задачами, обработчик по адресу #0066 которого будет находиться в ПЗУ BIOS.
Я рассматривал варианты сделать горячую клавишу во время нажатия Magic, но потом отказался от этой идеи потому, что в этом варианте появляется проблема, что клавишу опрашивать по Magic нужно, а значит это должен делать обработчик в ПЗУ BIOS, и если пользователь выберет КЕШ, то надо каким-то образом отключить ПЗУ BIOS и включить КЕШ, и сделать это возможно только использовав резидентную программу, которую необходимо скопировать в ОЗУ, а значит придётся немного подпортить либо область системных переменных, что недопустимо, либо экран, что хоть и не катастрофично, но тоже плохо. Поэтому этот вариант я и отбросил. Если пользователю не нужна многозадачность, он может включить в BIOS Setup доступ к КЕШ-памяти по Magic, и по этой кнопке будет сразу попадать в КЕШ не портя ни одного байта в ОЗУ.
По поддержке карты DivIDE:
Ради неё я делал отдельный слот ZX-Bus+3. Но мне дали спецификацию этой карты, из которой стало ясно, что она не только не заработала бы, а вообще препятствовала бы старту компьютера. Из документации на DivIDE, эта карта отслеживает переходы процессора на адреса #0000, #0008, #0038, #0066, #04C6, то DivIDE подключает своё ПЗУ вместо основного. Соответственно, DivIDE будет нормально работать в режиме "+3" с соответствующей прошивкой, но не даст компьютеру запуститься в стандартном режиме. Разумеется, блокировка одного IORQ на слот ZX-Bus+3 не помогла бы. Поэтому для решения задачи, в стандартном режиме нужно блокировать не только IORQ, а ещё M1.
Для разрешения конфликта DivIDE с картами General Sound, ZXM General Sound и NeoGS, которые используют те же порты #B3 и #BB, нужно блокировать IORQ. Как оказалось, на карте ZXM-General Sound для этого есть дополнительный порт #33, который через D4 позволяет заблокировать карту. Карта NeoGS тоже содержит порт #33, но блокировка карты не предусмотрена. Классический General Sound этого порта не имеет вообще.
В предыдущей ревизии платы была блокировка IORQ на шину NemoBus и ZX-Bus+3, но будет лучше, если на NemoBus не делать блокировки IORQ, которая даёт задержку этого сигнала около 6 нс и полностью изменить концепцию поддержки DivIDE. Я убрал слот ZX-Bus+3, заменив его на 4-й слот NemoBus, а вместо платки краевого слота +3 будет переходник, позволяющий подключать карту DivIDE в слот NemoBus. На этом переходнике будет реализован порт #33 для блокировки карты через D4, а так же формирование сигнала IORQCE, который будет блокировать порты компьютера, если будет идти обращение к DivIDE, когда работа этой карты разрешена через порт #33.
Когда карта DivIDE будет запрещена, для неё будут блокироваться сигнал M1, чтобы карта не перехватывала переходы по списку адресов и не подключала своё ПЗУ, сигнал IORQ и блокироваться генерация сигнала IORQCE.
Для того, чтобы карты General Sound и NeoGS не мешали работать карте DivIDE, последняя должна быть установлена через свой переходник в более приоритетный слот NemoBus. Если будет использоваться карта ZXM-General Sound, то с ней будет без разницы, какую карту в какой слот установить.
Кроме этого, карты DivIDE, как оказалось, выпускались с разным конструктивом слота, как вдоль платы, так и перпендикулярно, поэтому в предыдущей ревизии материнской платы ещё не каждую карту DivIDE удалось бы воткнуть физически. Сделать универсальный переходник под разные конструктивы DivIDE будет проще, чем сделать эту универсальность на материнской плате.
https://i.ibb.co/TtnKnTJ/Main-Board-v8-0-sch-ps.png
На плате и сейчас уже нет места для чего-то нового, куда-там DivIDE ещё разводить. На верхней плате тоже места может не хватить. Кроме этого, DivIDE далеко не всем будет нужен. На принципиальной схеме DivIDE, карта содержит 3 микросхемы ПЛМ, ПЗУ ёмкостью 8 КБ и статическое ОЗУ ёмкостью 32 КБ, и 3 микросхемы логики (два буфера и ещё что-то, не разбирался, что).
которые наверно цепляются в адресное пространство z80
а на плате уже есть своя рама и по моему даже кеш...
да и пзу-шку можно было заюзать спековскую....
ну это конечно придется перелапачивать этот дивиде...
вопрос так сильно ли нужен дивиде? чтоб грузить с него тапы?
- - - Добавлено - - -
и не по теме
а как щелкают страницы? (в классическом 32к варинате)
через 7ffd?
так понимаю
FB вкл
7B выкл
DivIDE он же DivMMC заюзан в Карабас нано , ПЗУ его сидит в 0 банке основного ПЗУ , ОЗУ юзается за пределами первого мегабайта , за подробностями к andykarpov
Отправлено с моего HRY-LX1T через Tapatalk
Так и есть. Страница переключается через порт #7FFD D4, т.е. через бит, который переключает страницы ПЗУ Menu-128 / Basic-48. Так же сделано и в этом проекте.
Ну а включается либо по кнопке Magic (если в BIOS Setup включена соответствующая опция) либо программно чтением из порта #FB, выключается программно чтением из порта #7B.
В этой ревизии я так же немного доработал управление теневым ОЗУ. Т.к. его можно использовать для эмуляции основного ПЗУ и эмулировать можно хоть все 4 страницы сразу, поэтому было сделано так: КЕШ использует 0 и 2 страницы теневого ОЗУ. Эмуляция страниц ПЗУ TR-DOS (страница 1) и Basic-48 (страница 3) не влияет на доступность КЕШ. Если включена эмуляция ПЗУ Menu-128 (страница 2), то в качестве КЕШ становилось доступна только одна 0-я страница. А если включена эмуляция ПЗУ Gluk (страница 0), тогда КЕШ становился не доступным, даже если будет свободна страница 2 теневого ОЗУ.
Доработка устранила это ограничение: Если включена эмуляция ПЗУ Menu-128 (страница 2), то будет доступна одна 0-я страница КЕШ. А если включена эмуляция ПЗУ Gluk (страница 0), тогда будет доступна одна 2-я страница КЕШ. И только если будет включена эмуляция двух страниц ПЗУ Menu-128 и Gluk одновременно, тогда только КЕШ станет недоступным.
Добавил чтение из порта #EFF7 (только 5 бит), что позволит при переключении между задачами, восстанавливать правильный видеорежим и состояние сигнала ROMRAM для задачи. Оставшимися 3 битами будет читаться состояние Border порта #FE, что позволит при переключении между задачами так же восстанавливать и цвет бордюра.
Всё это удалось запихнуть на плату, поэтому расположение компонентов тоже выставляю. Дальше попытаюсь оптимизировать плату так, чтобы выкинуть хотя бы 1 корпус микросхемы, если получится.
Под процессором будет микросхема К1531АП6, которая будет буфером шины данных для всех портов. Вся память и 4 слота NemoBus подключаются к шине данных по-прежнему напрямую.
https://i.ibb.co/wdY4hsR/Main-Board-v8-0-sch-ps.png https://i.ibb.co/3rdJXjr/Main-Board-...ponents-ps.png
Как дела ?
Закончил разводку новой ревизии материнской платы 8.2. Помимо всего сказанного ранее, включая чтение из порта #EFF7 текущего видеорежима и цвета Border-a, дополнительно убрал из порта BIOS управление блокировкой Covox, которая необходима для того, чтобы Covox не жужжал во время печати на принтере. Я сделал иначе: Если происходит печать на принтер (при запрещённом в BIOS-Setup КЕШ-памяти), по IN A,(#FB) произошло переключение порта #FB/#7B и включилась страница ПЗУ принтера, то Covox блокируется автоматически. Если КЕШ в BIOS-Setup разрешён, тогда при команде IN A,(#FB) Covox не блокируется, что позволит его использовать одновременно с КЕШ памятью.
Ну а самое главное - убрал с платы один серьёзный косяк, который никто не заметил - неправильное расстояние между рядями ножек разъёмов NemoBus и ISA. У меня по ошибке было 2.54 мм, а на самом деле там 5.08 мм, т.е. смонтировать разъёмы шины NemoBus было бы невозможно. Спасибо Black Cat-у за то что обнаружил.
Внёс одно маленькое изменение на верхнюю плату, которая получила номер ревизии 4.3 - в контроллере NemoIDE убрал сигнал DOS, потому что порты NemoIDE не конфликтуют с контроллером дисковода, их незачем блокировать во время работы TR-DOS. Эта доработка позволит обращаться к HDD прямо из ПЗУ TR-DOS.
https://i.ibb.co/S5Dzvw6/Main-Board-v8-3-sch-ps.png https://i.ibb.co/H7nCh0g/Main-Board-...ponents-ps.png https://i.ibb.co/d2cwHtD/Main-Board-v8-3-pcb-gnd-ps.png https://i.ibb.co/y46Kb2k/Main-Board-...b-power-ps.png https://i.ibb.co/wwR88xY/Main-Board-...-bottom-ps.png https://i.ibb.co/bgCydp4/Main-Board-v8-3-pcb-top-ps.png
https://i.ibb.co/nMzzfVb/Top-Board-v4-3-sch-ps.png https://i.ibb.co/3M7WGjZ/Top-Board-v...nts-top-ps.png https://i.ibb.co/bRpvKJ4/Top-Board-v...nts-bot-ps.png https://i.ibb.co/tMmJWjB/Top-Board-v...-bottom-ps.png https://i.ibb.co/4dSL82h/Top-Board-v4-3-pcb-top-ps.png
Остаётся разработать новый переходник для подключения карты DivIDE в слот NemoBus с возможностью полноценной блокировки карты через порт #33. Принципиальная схема уже есть, она не сложная, на ней будет 6 микросхем, осталось развести плату.
Готова схема и плата адаптера NemoBus To DivIDE.
Принципиальную схему разработал Black Cat, я оттуда убрал управление светодиодом через порт #33, которое не нужно, и выкинул джамер для включения / отключения блокировки DivIDE при переходе на адреса #3Dxx, включив эту блокировку.
Его особенностью является дешифратор портов DivIDE контроллера для формирования сигнала IORQGE, что позволяет блокировать конфликтующие с DivIDE устройства, такие как General Sound, ZXM-General Sound и NeoGS. А так же наличие порта #33 для блокировки самого DivIDE. По-умолчанию DivIDE будет заблокирован путём блокировки 3-х сигналов: IORQ/ на слот ZXBus+3, M1/ на слот ZXBus+3 и IORQGE на слот NemoBus (карта не оказывает влияние на работу остальных устройств). Для того чтобы включить DivIDE, необходимо в порт #33 выдать число #10 (в десятичном 16).
Если DivIDE устанавливается одновременно с картой General Sound (с классической версией) или с NeoGS, то DivIDE должен быть установлен в более приоритетный слот, иначе General Sound или NeoGS помешает работе DivIDE.
В случае если DivIDE устанавливается одновременно с картой ZXM-General Sound, тогда кого в какой слот устанавливать, не будет иметь значения, потому что звуковая карта ZXM-General Sound тоже имеет порт блокировки #33, который работает наоборот - число #10 блокирует её. Т.е. если необходима карта DivIDE, то в порт #33 записываем #10, а если нужна ZXM-General Sound, тогда в этот же порт #33 записываем #00 (или ничего не записываем после аппаратного сброса).
Ещё пока не ясно, нужно ли на DivIDE подавать отрицательные напряжения питания -5V и -12V. Шина ZX-Bus+3 предусматривает эти напряжения, но на шине NemoBus их нет. Я покопаю этот вопрос, если не нужно, то этот адаптер можно так и оставлять. А если нужно, то придётся на него добавить преобразователи отрицательных напряжений.
https://i.ibb.co/q9jL3YZ/Nemo-Bus-To...1-1-sch-ps.png https://i.ibb.co/Zd3YvCG/Nemo-Bus-To...ponents-ps.png https://i.ibb.co/sgrkbpN/Nemo-Bus-To...-bottom-ps.png https://i.ibb.co/DfxBmtf/Nemo-Bus-To...pcb-top-ps.png
Интересно, я долго читал все страницы....
Что с заказами на этот НьюПентагон?
Я вот подумываю ..
Хочу дополнить немного про Пентагон-128:
Если я правильно понимаю, то Порт принтера 251 , а порт чтения линии занято 123 и эта вся схема имеет уже кое-какой RS-232
По поводу батарейки 2032 CMOS есть вертикальное расположение "розетки/панельки" под неё
Я ещё тут сделал на Атмега 168 (DIP-32) Soundrive/Covox (упрощённая дешифрация А1-А6) с учётом портов
Скрытый текст
;76543210
;6xx54321
CPI TEMP1, 0B00000111 ;0F СРАВНИТЬ С КОНСТАНТОЙ
BREQ COVOX_0F ; ПЕРЕЙТИ ЕСЛИ РАВНО
;6xx54321
CPI TEMP1, 0B00001111 ;1F СРАВНИТЬ С КОНСТАНТОЙ
BREQ COVOX_1F ; ПЕРЕЙТИ ЕСЛИ РАВНО
;6xx54321
CPI TEMP1, 0B10000111 ;4F СРАВНИТЬ С КОНСТАНТОЙ
BREQ COVOX_4F ; ПЕРЕЙТИ ЕСЛИ РАВНО
;6xx54321
CPI TEMP1, 0B10001111 ;5F СРАВНИТЬ С КОНСТАНТОЙ
BREQ COVOX_5F ; ПЕРЕЙТИ ЕСЛИ РАВНО
;---------------------------
;6xx54321
CPI TEMP1, 0B10011000 ;F1 СРАВНИТЬ С КОНСТАНТОЙ
BREQ COVOX_F1 ; ПЕРЕЙТИ ЕСЛИ РАВНО
;6xx54321
CPI TEMP1, 0B10011001 ;F3 СРАВНИТЬ С КОНСТАНТОЙ
BREQ COVOX_F3 ; ПЕРЕЙТИ ЕСЛИ РАВНО
;6xx54321
CPI TEMP1, 0B10011100 ;F9 СРАВНИТЬ С КОНСТАНТОЙ
BREQ COVOX_F9 ; ПЕРЕЙТИ ЕСЛИ РАВНО
;6xx54321
CPI TEMP1, 0B10011101 ;FB СРАВНИТЬ С КОНСТАНТОЙ
BREQ COVOX_FB ;251 ПЕРЕЙТИ ЕСЛИ РАВНО
;---------------------------
;6xx54321
CPI TEMP1, 0B10001110 ;DD СРАВНИТЬ С КОНСТАНТОЙ
BREQ COVOX_DD ; ПЕРЕЙТИ ЕСЛИ РАВНО
;6xx54321
CPI TEMP1, 0B00000000 ;01 СРАВНИТЬ С КОНСТАНТОЙ
BREQ COVOX_01 ; ПЕРЕЙТИ ЕСЛИ РАВНО
;---------------------------
;6xx54321
CPI TEMP1, 0B00011001 ;B3 СРАВНИТЬ С КОНСТАНТОЙ
BREQ COVOX_B3 ; ПЕРЕЙТИ ЕСЛИ РАВНО
;---------------------------
;6xx54321
CPI TEMP1, 0B00011101 ;BB СРАВНИТЬ С КОНСТАНТОЙ
BREQ COVOX_BB ; ПЕРЕЙТИ ЕСЛИ РАВНО
;6xx54321
CPI TEMP1, 0B10001010 ;55 СРАВНИТЬ С КОНСТАНТОЙ
BREQ COVOX_55 ; ПЕРЕЙТИ ЕСЛИ РАВНО
;---------------------------
;6xx54321
CPI TEMP1, 0B00011111 ;3F СРАВНИТЬ С КОНСТАНТОЙ
BREQ COVOX_3F ; ПЕРЕЙТИ ЕСЛИ РАВНО
;---------------------------
;6xx54321
CPI TEMP1, 0B10011011 ;7F СРАВНИТЬ С КОНСТАНТОЙ
BREQ COVOX_7F ; ПЕРЕЙТИ ЕСЛИ РАВНО
;---------------------------
RET
[свернуть]
Ставиться прямо на Z-80, есть ножка RESET и чтобы не "пердело" её можно использовать как "MUTE" если придавить к земле
Атмега+кварц-20 МГц+22 нФ+аналоговые детальки на выходе (играет посредственно, задран Бас и занижен Верх)
По поводу лишних звуковых эффектов , можно сделать "приглушение" в самом микшере звуковых выходов (аналоговые ключи)
которые через дешифратор можно коммутировать (им может понадобиться -12В)
- - - Добавлено - - -
На счёт ТУРБО- можно прямо на пинах (в розетке, между платой и кнопками) в плате сделать на Тини-13 коммутатор по одному проводу (типа 1-wire) и от PC клавы брать один сигнал
А переключать режимы клавишей SCROLL LOCK + 1 или +2 или +3 (3 режима) . Нажал клавишу SCROLL LOCK и светодиод мигает (scroll lock) и тикает таймер на .. допустим 3 сек и при бездействии ничего не делает перестаёт мигать (в это время в PC Атмеге-48 выжидается это время ) , если затем нажать клавишу 1 то это =3,5 если нажать 2 то это=7, если нажать клавишу 3, то это 14 и т.д. в течении 3 сек например, а ТИНИ-13 , которая будет втыкаться на пины на плату, будет раскодировать сигнал от ПЦ Атмеги-48 (сериал интерфейс) и включать нужную комбинацию Турбы (и ещё положение INT'a переключать SL+0 toggle , клон/не клон)
- - - Добавлено - - -
Вы грамотно сделали ПЗУ и Процессор, не меняйте их расположение, есть запас на расширение через переходные панельки, это хорошо
А вот СИММ можно наверное убрать на верх и поставить по горизонтали (под БП практически*** для райзера/переходника прямой/90 градусов для 72 конт. DIMM модуля)
- - - Добавлено - - -
Это просто мысли вслух, не более: АГ3 , ЛЛ1, ТМ2 может подвинуть или поперёк поставить, если какая нибудь плата расширения с хитрым дизайном.. , то пусть ляжет на всю микросхему поперёк , а то возможен вариант контактировать на целый ряд ножек этих микросхем платой расширения (в слот которая вставляется) вдруг так совпадёт, что расстояние будет критичным*** (или придётся изготовить такую нестандартную плату для какого нибудь мега проекта):v2_dizzy_coder:
Вообще АГ3 тоже бы заменить на ТИНИ-13 (все тайминги NMI в коде и от внутреннего генератора, который = 9,6 МГц)
и даже с защитой от многократного срабатывания (типа должно пройти 100 сигналов INT прежде чем можно повторно использовать кнопку MAGIC:v2_dizzy_king:)
конфиг можно в EPROMe хранить на выбор пользователя (делать иль нет задержку/условие)
Это даже я круто придумал, ведь при взломе ДЕМ....(за частую) используется стек в экранной (во время INT'a) области и при определённой конфигурации очерёдность срабатывания NMI от INT можно (через заданные пользователем ячейки EPROM)... ну как-то так (иногда быввает срать в стек, который в экране не красиво)
Есть ли резервы по ножкам у ТИНИ которая делает сброс???? (для замены АГ3 , минус 0,5 корпуса и резисторы))
Пахнет тем, что в БОИСе нужен SPI интерфейс, для прошивки конфигов в ТИНИ, .. Вы спрашивали куда деть ножки портов Бивасика..:v2_dizzy_vodka: (для запрета NMI во время программирования ТИНИ/АТМЕГА и прочего или наоборот для управленя , если нужно по логике работы...)
- - - Добавлено - - -
Раз вы начали на АВР , то полезная вам ссылка http://www.engbedded.com/fusecalc
AVR® Fuse Calculator
- - - Добавлено - - -
О.. у меня возникла идея по поводу замены АГ3 на Пентагоне-128, чтобы GLUK Service приурочить и не резать по возможности дорожки.... (надо обдумать)
- - - Добавлено - - -
Ещё вы писали про удлинение сигнала IORQ .. в "писаниях" про Z-80 сказано, что стробом чтения/записи служат сигналы WR/RD т.к. они на пол такта длинше сигнала IORQ
- - - Добавлено - - -
На счёт стабильной ШД, можно попробовать использовать вентиль 2ИЛИ где 1вход=IORQ, 2вход=M1 и выход с него использовать для выдачи на ШД 255 через регистр (программируемый или с АП6 с подтяжкой к 5В )например при сигнале INT (возможно здесь кроется то время, после "отработки" IORQ и M1 можно снимать и сигнал INT с Z-80***)
(можно и другое число для отладки/хака заносить) вместо подтягивающих резисторов для ШД (я всё никак не проверю у себя такой вариант)
Единственное, что я бы оставил резисторы около 10 КОм при этом, для портов В/В, чтобы читалось 255, если нет порта
- - - Добавлено - - -
И опять мысли вслух: На ТИНИ-13 (ну это я образно) можно сделать искусственный приоритет слотов (опять же и с помощью EPROMa) расширения, просто давая задержку чуть больше для вторичных/третичных и т.д. слотов с возможностью программирования по SPI, не вынимая так сказать из слотов платы а то и блокируя их там в неактивном состоянии, для отладки/хакинга)
- - - Добавлено - - -
А вот с читалкой магнитофона, её нужно проверять и в турбо режиме и супер-пупер турбо режиме, чтобы работала (игры, которые за 18 сек грузятся)
И ещё проверьте дему ROBOCOP клавиши выбора мелодий 1-5 (она не переключается, если нет магнитофонного очка, этот бит заведён в опрос клавы, может и ещё какой..)
В фирменном Спеке что-то там зануляеся или устанавливается и вообще совмещено ИН/ОУТ....., короче 254 порт с хитростями у оригинала) Если не переключается, то нужно подать шум на ТАПЕ-ИН
И ещё по поводу INT'a проверьте игру ALTERED BEAST, помню на Пентагоне-128 не работала, пока резистор не уменьшил в цепях ИНТа
в игре всё как-то критично к тактам, сигналам, уровням и т.д, её следует тоже тестить на клонах
- - - Добавлено - - -
Ещё бы проверить на повышенном/пониженном напряжении, но для этого нужен переделанный БП или другой, с регулировкой
- - - Добавлено - - -
ВГ93 без защиты на диодах по +5 +12 в случае не одновременной подаче напряжений?
- - - Добавлено - - -
Я у себя ставил один диод в Пентагоне-128 от +5 Вольт к +12 Вольт
- - - Добавлено - - -
INT у вас 50 Гц всегда ? (при любом ТУРБО) (или сколько там в Пентагоне 48,9 Гц)
press click >>> SN74LVC1G08 Single 2-Input Positive-AND Gate <<<
Хочу Вас познакомить с однокорпусной - одновентильной "шестиножкой",
может где то пригодиться её вкорячить, если проверить скорость работы/доступность в продаже
они разные бывают и ставятся в замен больших микросхем, если в корпусе остаются неиспользованные элементы
или нужен всего один "вентиль" из логической микросхемы например
Просьба не увлекаться количеством в своих разработках (оно ещё не привычно глазу так сказать)
Скрытый текст
не реклама, просто под руку попалось
https://www.chipfind.ru/catalog/ic/l...vc1g08dckr.htm
http://a2j9u8p6.stackpathcdn.com/wp-...HC1G08DCKR.gif
https://www.chipdip.ru/product0/9000485581
[свернуть]
Добавлю по поводу ZX Lprint
в Пентагоне-128 есть сигнал (на разъёме) /ENPR, он служит типа датчика подключенного разъёма к компьютеру.....
Это про то, как сделать выбор между Lprint и GLUK/КЕШ/ и чего там не сходиться в схеме....
Типа нет разъёма - нет принтера, нефиг подключать ПЗУ с драйвером печати
Проект заглох?