| ZXM-Phoenix - модернизация и исправления |
| Black_Cat | Дата: Суббота, 11.07.2009, 16:40 | Сообщение # 1 |
 Координатор
Группа: Координаторы
Сообщений: 406
Статус: Offline
| 1.0 Порт атрибутов / номера строки для ZXM-Phoenix. Порт является функциональным аналогом порта атрибутов, но вместо бесполезного значения атрибутов возвращает номер отображаемой строки экрана. В области бордюра возвращает значение #FF. Для полной совместимости программ с оригинальным ZX Spectrum, в стандартном видеорежиме этот порт рекомендуется использовать только в качестве индикатора начала экранной области, а номер строки использовать только для программирования в расширенных видеорежимах.
"Трудно найти чёрную кошку в тёмной комнате.. ...особенно, если её там нет", "Forever!". "Я никогда не причиняю им зла. Я говорю им правду, и они думают, что это - зло." Гарри Трумэн
|
| |
|
| |
| Black_Cat | Дата: Пятница, 09.10.2009, 18:53 | Сообщение # 2 |
 Координатор
Группа: Координаторы
Сообщений: 406
Статус: Offline
| 2.0 Выход в Gluck Reset Service по сбросу в ZXM-Phoenix. ZXM-Phoenix не умеет по аппаратному сбросу выходить как Pentagon в Gluck Reset Service. Несложная доработка позволяет решить этот вопрос. Для доработки потребуется один SMD резистор на 680 Ом и диод. Изменения производятся в соответствии с нижеприведённой схемой: SMD резистор впаивается в разрез дорожки в удобном месте, а диод впаивается снизу платы между ногами 2 и 9 микросхемы DD70 ЛИ1, при этом вывод 2 микросхемы откусывается от платы и соединяется с 1 выводом как указано на рисунке: Достоинством такого способа доработки так же является то, что если потребуется вернуть всё взад, то не нужно отпаивать резистор, а достаточно только отпаять диод, и припаять вывод 2 микросхемы обратно к плате. Хочу напомнить, что Gluck понимает только пентагоновское управление памятью, поэтому на Фениксе по умолчанию он увидит только 256kb ОЗУ. Что бы виделось 512kb необходимо установить два модуля SIMM 1Mb, переключить перемычку JP18 и сделать небольшую доработку: отрезать провод подходящий к ноге 13 DD23, и соединить эту ногу проводом с 9 ногой DD21. Общая память при этом будет 2Mb, но по пентагоновскому стандарту будет адресоваться только 512kb. К сожалению на Фениксе не поместился порт #EFF7, поэтому пентагоновское управление не полноценное - нельзя включить режим ограничения памяти 128kb, из-за чего некоторые криво написанные программы некорректно работают со старшими разрядами порта #7FFD. Это необходимо иметь ввиду, и либо добавить порт #EFF7, либо поставить тумблер на переключение сигналов идущих к ноге 13 DD23. 3.0 Использование MagOS на ZXM-Phoenix. Для получения возможности использования MagOS на ZXM-Phoenix необходимо обеспечить возможность считывания состояния разрядов системных портов #7FFD и #1FFD участвующих в управлении памятью, для чего необходимо подать сигналы с соответствующих выходов портов #7FFD и #1FFD на порт A AY: AY(DD44) - #7FFD(DD21), #1FFD(DD31) 21 DD44 - 5 DD21 20 DD44 - 6 DD21 19 DD44 - 2 DD21 18 DD44 - 16 DD21 17 DD44 - 12 DD31 16 DD44 - 15 DD21 Необходимо иметь ввиду, что MagOS не понимает больше 256k ОЗУ, поэтому использовать всю доступную память просто так не получится. Так же необходимо иметь ввиду, что запись чего-либо в порт A AY, может вывести из строя микросхемы портов #7FFD и #1FFD, или сам порт A AY, поэтому устанавливая эту доработку, вы делаете это на свой страх и риск.. Устранить этот недостаток можно заменой соединений проводами на соединения через диоды, при этом диоды должны быть включены анодами к AY. Диоды лучше брать германиевые или Шоттки. P.S. Что-бы гарантированно убить Скорпион, необходимо считать порт A AY, и если значение младших шести битов будет отлично от нуля, - проинвертировать его и записать обратно в порт A AY.. ..и только то, что програмисты не разбираются в электронике может объяснить отсутствие на сегодня Scorpion Killed вирусов и AY музыки ..ибо за такую схемотехнику скорпионовцам надо руки поотрывать..
"Трудно найти чёрную кошку в тёмной комнате.. ...особенно, если её там нет", "Forever!". "Я никогда не причиняю им зла. Я говорю им правду, и они думают, что это - зло." Гарри Трумэн
|
| |
|
| |
| Black_Cat | Дата: Среда, 14.10.2009, 19:42 | Сообщение # 3 |
 Координатор
Группа: Координаторы
Сообщений: 406
Статус: Offline
| 4.0 RESET в ZXM-Phoenix.
4.1 Системный RESET.
Что бы получить стабильный аппаратный сброс компьютера при включкеии питания, рекомендуется подать сигнал PWR_OK (POWER GOOD) с контакта 8 разъёма XP16 "Питание" на контакт 1 разъёма XP11 "Сброс". При этом кнопка "Сброс" функциональности не теряет. Кроме того, сигнал RES/ выполнен не по стандарту NemoBus и не позволяет внешним устройствам производить аппаратный сброс компьютера. По большому счёту это и не надо, т.к. ZXMC-2 уже разведена на плате, а других устройств генерящих внешний сброс вроде больше и не существует. Но если всё же это понадобится, то устраняется замыканием выводов 2 и 3 DD59.1, либо врезкой диода катодом к выводу 3 в разрыв линии идущей с выхода 3 DD59.1, а так же подтяжкой анода этого диода к +5V установкой резистора 4k7-10k между 26 и 11 ногами процессора. Последний вариант предпочтительней.
4.2 RESET HDD.
В контроллере NemoIDE ZXM-Phoenix rev.0 - rev.1 есть ошибка в формирователе сигнала RHDD/ (аппаратный сброс HDD), из-за которой аппаратный сброс на HDD никогда не проходит. По большому счёту это мало на что влияет, т.к. HDD ресетится программно через внутренние порты. Ошибка может проявляться только при "зависании" HDD и невозможности вывести его из этого состояния кнопкой "Сброс". Для устранения этой ошибки необходимо соединить выводы 2 и 18 DD69, после чего на HDD начнёт проходить сигнал с кнопки "Сброс".
4.3 RESET AY при инициализации "Magic".
При инициализации "Magic" во время воспроизведения музыки, в AY устанавливается непрерывное воспроризведение последнего запрограммированного звука. Предлагаемая доработка прекращает звучание при выходе в "Magic" путём аппаратного сброса AY. В схеме применяется SMD резистор, который впаивается в разрез дорожки сигнала RES/ в удобном месте. Дополнительные диоды, устанавливаемые на плату должны быть типа Д9 или любыми германиевыми или Шоттки. Так же необходимо заменить кремниевый диод VD10 на германиевый. Кроме того на Z80 необходимо подтянуть ногу 17 к +5V, припаяв снизу платы резистор номиналом 4,7-10 кОм между 17 и 11 ногами процессора. Дополнительный диод устанавливаемый параллельно R17 можно ставить вместо этого резистора.
"Трудно найти чёрную кошку в тёмной комнате.. ...особенно, если её там нет", "Forever!". "Я никогда не причиняю им зла. Я говорю им правду, и они думают, что это - зло." Гарри Трумэн
|
| |
|
| |
| Black_Cat | Дата: Пятница, 30.10.2009, 03:46 | Сообщение # 4 |
 Координатор
Группа: Координаторы
Сообщений: 406
Статус: Offline
| 5.0 Сигнал DOS/ в контроллере NemoIDE ZXM-Phoenix.
К сожалению обнаружил свою ошибку в ZXM-Phoenix rev.0 - rev.1 - недосмотрел когда заводил в схему сигнал IODOS/ что он должен быть замешан ещё и в выборке контроллера NemoIDE. Для устранения этой ошибки хотел предложить схему замеса сигнала IODOS/ в выборку контроллера NemoIDE. Но потом подумав ещё немного, и вспомнив как обошлись с сигалом DOS/ в SMUC-2, а так же сверившись с "Путеводителем по портам ZX Spectrum" - пришёл к выводу, что контроллер NemoIDE будет прекрасно работать и без учёта этого сигнала. Т.е. выбросив DOS/ из дешифрации, получим что контроллер NemoIDE ZXM-Phoenix будет доступен всегда, независимо от сигналов DOS/ и IODOS/. Единственным устройством, способным при этом создать конфликт по адресации портов в DOS режиме мог бы стать интерфейс ISA SMUC-1. Но т.к. этот интерфейс по своей природе сделан криво, и изначально конфликтовал с портом #xxFE, а так же ввиду полного отсутствия программной поддержки для него, то считаю что на нём можно поставить крест и забыть как о страшном сне, тем более, что существуют более грамотные решения для подключения ISA устройств. Засим предлагаю сделать небольшую доработку решающую все проблемы. Для этого надо откусить вывод 6 DD60 от платы, и соединить его проводом с питанием +5V как показано на рисунке:
"Трудно найти чёрную кошку в тёмной комнате.. ...особенно, если её там нет", "Forever!". "Я никогда не причиняю им зла. Я говорю им правду, и они думают, что это - зло." Гарри Трумэн
|
| |
|
| |
| Black_Cat | Дата: Вторник, 29.12.2009, 17:14 | Сообщение # 5 |
 Координатор
Группа: Координаторы
Сообщений: 406
Статус: Offline
| 6.0 Порты чтения #FE #1FFD #7FFD в ZXM-Phoenix.
6.1 Аппаратная доработка.
Доработка позволяет читать состояние портов #FE, #1FFD, #7FFD соответственно через порты #BBFD, #BAFD, #BEFD. Доработка выполняется на отдельной плате. Для уменьшения количества соединений, предлагается регистр ИР22, используемый в качестве буфера чтения порта #7FFD, напаять вторым этажом на DD21. При этом все ноги кроме 1, 10, 11, 20 припаиваются непосредственно к ногам нижней микросхемы. На 11 и 20 подаётся +5В, на 10 - земля, а на 1 - сигнал чтения порта.
Добавлено (29.12.2009, 17:14) --------------------------------------------- 6.2 Программно-аппаратная доработка.
В отличие от вышеприведённой схемы, эта доработка не требует реализации на дополнительной плате, т.к. все функции возлагаются на обновлённую программу ATMEGA8515-16. Доработка предполагает перепрограммирование ATMEGA8515-16 и незначительную модернизацию. Для rev.05 аппаратное вмешательство не потребуется, а только изменение прошивки ПЗУ дешифратора.
"Трудно найти чёрную кошку в тёмной комнате.. ...особенно, если её там нет", "Forever!". "Я никогда не причиняю им зла. Я говорю им правду, и они думают, что это - зло." Гарри Трумэн
|
| |
|
| |
| Black_Cat | Дата: Воскресенье, 10.07.2011, 00:01 | Сообщение # 6 |
 Координатор
Группа: Координаторы
Сообщений: 406
Статус: Offline
| 7.0 Управление магнитофонным входом по D4 #FE.
Во всех оригинальных моделях ZX48 и ZX128 (в +2 тоже) разряд D4 #FE управлял блокировкой сигнала магнитофонного входа. Т.е. при записи в D4=1 #FE, из D6 #FE всегда будет читаться единица, вместо сигнала магнитофона. На проверке этого построена защита некоторых программ, таких как Abu Simbel Profanation, Rasputin. Ниже приведена схема доработки, реализующая такое управление. Доработка не требует резки дорожек платы.
"Трудно найти чёрную кошку в тёмной комнате.. ...особенно, если её там нет", "Forever!". "Я никогда не причиняю им зла. Я говорю им правду, и они думают, что это - зло." Гарри Трумэн
|
| |
|
| |
| Black_Cat | Дата: Воскресенье, 10.07.2011, 00:41 | Сообщение # 7 |
 Координатор
Группа: Координаторы
Сообщений: 406
Статус: Offline
| 8.0 Питание ВГ93.
В схеме питания ВГ93 ZXM-Phoenix rev.0 - rev.4 предусмотрена защита от пропадания напряжения +12V путём подачи напряжения +5V через диод VD19 КД522. Данная схема является некорректной и не будет работать, т.к. при пропадании напряжения +12V, защитное напряжение +5V подаётся не индивидуально на ВГ93, а на всю шину +12V, к которой подключены HDD, FDD, CD-ROM и т.д., и чей суммарный ток нагрузки во много раз превышает предельно допустимый ток диода КД522, который вследствие этого немедленно выйдет из строя так и не выполнив своего назначения. Соответственно, после сгорания защитного диода сгорит и ВГ93. Таким образом, диод VD19 необходимо либо вообще исключить из схемы ввиду крайне низкой вероятности для современных PC ATX источников питания выхода из строя напряжения +12V, либо сделать корректное подключение, отрезав линию питания +12V ВГ93 от общей шины, и подав на неё питание от +5V и от +12V через диоды:
"Трудно найти чёрную кошку в тёмной комнате.. ...особенно, если её там нет", "Forever!". "Я никогда не причиняю им зла. Я говорю им правду, и они думают, что это - зло." Гарри Трумэн
|
| |
|
| |
| Black_Cat | Дата: Суббота, 14.01.2012, 00:24 | Сообщение # 8 |
 Координатор
Группа: Координаторы
Сообщений: 406
Статус: Offline
| 9.0 NemoBus TURBO для ZXM-Phoenix rev.04-05
Доработки приводят в соответствие режим "TURBO" ZXM-Phoenix rev.04-05 со стандартом шины NemoBus v.1.0. По умолчанию режим "TURBO" включен, и выключается либо замыканием фиксируемой кнопки S1, либо подачей логического нуля на контакт B5 "TURBO" шины NemoBus. Тип выхода сигнала "TURBO" для плат расширения - ОК. Доработка платы ревизии 4 производится путём укорачивания выводов 1 и 6 DD73 и соединении перемычками выводов 5 и 6 на печатной плате, а так же соединением проводом укороченного вывода 1 DD73 с выводом 2 DD19. Кроме того необходимо соединить между собой контакты B5 слотов расширения, краевого разъёма и контакта 1 разъёма XP20. Резистор R9 заменить на 680 Ом. Параллельно кнопке "TURBO" можно подключить светодиод с балластным сопротивлением для индикации включения режима "TURBO". Для платы ревизии 5 придётся ещё укоротить ногу 4, и соединить её с +5V. Ниже приведена схема доработки. Доработка не требует резки дорожек платы.
"Трудно найти чёрную кошку в тёмной комнате.. ...особенно, если её там нет", "Forever!". "Я никогда не причиняю им зла. Я говорю им правду, и они думают, что это - зло." Гарри Трумэн
|
| |
|
| |
| Black_Cat | Дата: Четверг, 17.05.2012, 17:28 | Сообщение # 9 |
 Координатор
Группа: Координаторы
Сообщений: 406
Статус: Offline
| 10. Режим Pentagon 512k в ZXM-Phoenix
Схема обеспечивает возможность переключения в режим Pentagon-512. Назначение контактных групп переключателя S1:
S1.1 - отключает порт #1FFD; S1.2 - изменяет положение сигнала INT/; S1.3 - заменяет управление памятью с D6 #1FFD на D6 #7FFD; S1.4 - изменяет количество строк в кадре с 312 на 320.
Микросхемы ЛА2 напаивается поверх DD3, ЛЕ1 напаивается поверх ЛА2, ЛИ3 напаивается поверх DD5. Схема не обеспечивает полную совместимость с программами использующими короткую адресацию порта #7FFD и не учитывающими при этом состояние адресной линии A14. В качестве S1 используется кнопка П2К. Доработка возможна без резки дорожек платы.
"Трудно найти чёрную кошку в тёмной комнате.. ...особенно, если её там нет", "Forever!". "Я никогда не причиняю им зла. Я говорю им правду, и они думают, что это - зло." Гарри Трумэн
|
| |
|
| |
| Black_Cat | Дата: Суббота, 06.07.2013, 02:12 | Сообщение # 10 |
 Координатор
Группа: Координаторы
Сообщений: 406
Статус: Offline
| 11. Выбор порта #7FFD по команде OUT(#FD),A
Доработка позволяет в автоматическом режиме, без тумблеров и кнопок, корректно исполнять некорректно написанный код, использующий для обращения к порту #7FFD неполный адрес. Проблема обнаружилась после введения порта #1FFD на ZX Spectrum +3, а в последствии и на отечественных компьютерах использующих этот порт. Принцип действия схемы основан на перехвате кода команды OUT(#nn),A, и принудительной установке адресной линии дешифратора порта #7FFD A14=1, при A15=0, что в совокупности с младшим байтом адреса выставляемым на шину по команде OUT(#FD),A даёт корректный адрес для дешифрации порта. Суть такого решения заключается в том, что команда OUT(#FD),A традиционно не должна применяться для записи в порт #1FFD, а так же для любых других портов диапазона #xxFD для которых A15=0. Схема не влияет на обращения к портам AY. Доработка предназначена для ZXM-Phoenix rev.3 и старше, имеющих ПЛИС, но в виде дополнительной платы может использоваться в любых моделях компьютеров. Для ZXM-Phoenix rev.3 и старше основная схема прошивается в ПЛИС, к свободным выходам которой подпаиваются три тонких одножильных провода. Приведённая схема реализована на дискретных элементах, и требует адаптации под ПЛИС. Шаг выводов ПЛИС равен 0,5 мм, поэтому не рекомендуется производить доработку тем, кто не имеет достаточного опыта таких работ. Резистор в адресной линии дешифратора впаивается в разрыв, образованный обрезанием ножки микросхемы, что не требует изменений на печатной плате.
Добавлено (06.07.2013, 02:12) --------------------------------------------- Ниже представлена схема иного способа определения исполнения команды OUT(#FD),A основанная на детектировании равенства байтов на шине данных и в старшем байте адреса. Эта схема содержит меньшее количество элементов, но требует большего количества сигналов и соединительных проводов. Представлены два варианта на разной элементной базе: на четырёхразрядном компараторе СП1 и на 8ми разрядном компараторе 688 серии. Ввиду значительных задержек сигнала, схемы с компараторами возможно применять только в компьютерах, где запись в порт #7FFD происходит по заднему фронту сигнала выборки процессора.
"Трудно найти чёрную кошку в тёмной комнате.. ...особенно, если её там нет", "Forever!". "Я никогда не причиняю им зла. Я говорю им правду, и они думают, что это - зло." Гарри Трумэн
|
| |
|
| |
| Black_Cat | Дата: Четверг, 20.03.2014, 12:18 | Сообщение # 11 |
 Координатор
Группа: Координаторы
Сообщений: 406
Статус: Offline
| 12. Чтение прерываний ВГ93 из #1F по стандарту Scorpion.
Доработка позволяет достичь полной совместимости с ProfROM Scorpion при работе с FDD. Для реализации требуется изменение в прошивке ATMega, в частности при чтении #1F, порты PA6, PA7 должны переводиться в третье состояние. Такое совмещение вполне допустимо, т.к. сигналы INTRQ=1 и DRQ=1 инициализируют обработку запросов FDC, при этом состояние джойстика становится безразлично.
"Трудно найти чёрную кошку в тёмной комнате.. ...особенно, если её там нет", "Forever!". "Я никогда не причиняю им зла. Я говорю им правду, и они думают, что это - зло." Гарри Трумэн
|
| |
|
| |
| Black_Cat | Дата: Воскресенье, 04.05.2014, 17:35 | Сообщение # 12 |
 Координатор
Группа: Координаторы
Сообщений: 406
Статус: Offline
| 13. Text mode 32x24 for ZXM-Phoenix
Характеристики ZX TXT mode 32x24:
1) 32х24 без атрибутов, цвет бумаги и чернил в TXT mode задаётся через порт #FE для всего экрана. Цвет чернил получается инвертированием старшего бита цвета бумаги, таким образом они всегда контрастны. Экран занимает область #7800-#7AFF. Знакогенератор загружаемый, 8х8, 2kb, грузится в ОЗУ, занимает область #7C00-#7FFF (символы 0-127), и #5C00-#5FFF (символы 128-255). Этот видеорежим не пересекается по ОЗУ, а следовательно может работать совместно со следующими графическими видеорежимами: - атрибутными: стандартным 256х192, MultiColor 256х192, FlashColor 256х192; - безатрибутными: 512х192, 16color.
"Трудно найти чёрную кошку в тёмной комнате.. ...особенно, если её там нет", "Forever!". "Я никогда не причиняю им зла. Я говорю им правду, и они думают, что это - зло." Гарри Трумэн
|
| |
|
| |
| Black_Cat | Дата: Пятница, 20.06.2014, 13:43 | Сообщение # 13 |
 Координатор
Группа: Координаторы
Сообщений: 406
Статус: Offline
| 14. 4 джойстика одновременно в ZXM-Phoenix
В ZXM-Phoenix, штатно возможно подключить только Kempston Joystick. Ниже приведена схема расширения, позволяющая использовать одновременно до 4х джойстиков. Схема требует изменения прошивки контроллера ATMEGA. В качестве четвёртого джойстика используется менее распространённый Fuller Joystick. При обращении к нему по порту #7F, на шину данных выставляется его состояние:
D0 - UP D1 - DOWN D2 - LEFT D3 - RIGHT D4 - всегда "1" D5 - FIRE 3 (не используется, всегда "1") D6 - FIRE 2 (не используется, всегда "1") D7 - FIRE 1
Активное состояние сигналов соответствует логическому "0". Со списком ПО, поддерживающего Fuller Joystick, можно ознакомиться: http://www.mobygames.com/attribu....0a
"Трудно найти чёрную кошку в тёмной комнате.. ...особенно, если её там нет", "Forever!". "Я никогда не причиняю им зла. Я говорю им правду, и они думают, что это - зло." Гарри Трумэн
|
| |
|
| |
| Black_Cat | Дата: Четверг, 21.08.2014, 21:51 | Сообщение # 14 |
 Координатор
Группа: Координаторы
Сообщений: 406
Статус: Offline
| 15. Управление памятью в окне CPU0
Доработка позволяет устанавливать режим доступа к ROM и RAM компьютера в окне CPU0:
D2 D0 #1FFD 0 | 0 - rd ROM 0 | 1 - r/w RAM 1 | 0 - rd ROM / wr RAM 1 | 1 - rd RAM
Доработка требует установки двух дополнительных микросхем: ТМ8 устанавливается поверх DD31, а ЛЕ4 поверх DD17. За счёт использования инверсного выхода ТМ8 высвобождается необходимый элемент исключающего ИЛИ DD14.2. На ТМ8 заводится так же разряд D5 шины данных, который в дальнейшем используется для включения режима TURBO.
"Трудно найти чёрную кошку в тёмной комнате.. ...особенно, если её там нет", "Forever!". "Я никогда не причиняю им зла. Я говорю им правду, и они думают, что это - зло." Гарри Трумэн
|
| |
|
|
|