Доработки Дельты-С на 75 микросхемах
Moderator: Shaos
-
SKV
- Novelist
- Posts: 42
- Joined: 06 May 2022 08:39
Доработки Дельты-С на 75 микросхемах
Обновление 2026 - Гербер платы расширений и итоговый альбом доработок. Подключение геймпадов Dendy.
Содержание
1) Врождённая болезнь видеосигнала
2) Подключение по SCART
3) Доработки: Kempston, 128K+AY
4) Арбитр IORQ. Разблокировка Sinclair-джойстиков, отключенных Z-Controller'ом.
5) Gotek как замена дискетам
6) Приложение. Принципиальная схема Дельты-С.
7) Перечень свободных элементов на плате Дельты-С
8) Видеосигнал. Часть 2:
- Дождь из видеопомех. Замена делителей. Не применяйте экранирование видеокабеля.
- Подбор пониженной яркости. Непрошенные цветофильтры в TV.
- Устранение мерцающей вертикальной линии на правой границе бордюра. Подбор RC-цепочки по осциллограмме.
- Вертикальные штрихи-артефакты между знакоместами при инверсии Ink/Paper
9) Проблемы совместимости и другие просчёты (обзорно):
- Слабая разводка шин питания
- Нестандартный кварц
- Плавающая шина видеоданных
- Отсутствие порта #FF
- Неполное повторение арбитра медленного поля
- Хаос с сигналом INT
---
1) Вертикальная рябь изображения и усыпание точками экранов Basic 48 и TR-DOS, пропадающие при остановке Z80 (удержании кнопки Reset). Причина - ошибка проектирования печатной платы Дельты: дорожка зелёного видеоканала от крайнего потенциометра R44 до базы транзистора VT5 по всей длине примыкает к высокочастотной дорожке A0. Результат - сильные помехи в зелёном канале, синхронно с выводом звука на бипер.
Устранение - отрезать дорожку при повороте на транзистор, вместо неё от движка потенциометра проложить провод поверху.
В принципиальной схеме Дельты перепутаны каналы RGB, равно как и джойстиков Sinclair.
Содержание
1) Врождённая болезнь видеосигнала
2) Подключение по SCART
3) Доработки: Kempston, 128K+AY
4) Арбитр IORQ. Разблокировка Sinclair-джойстиков, отключенных Z-Controller'ом.
5) Gotek как замена дискетам
6) Приложение. Принципиальная схема Дельты-С.
7) Перечень свободных элементов на плате Дельты-С
8) Видеосигнал. Часть 2:
- Дождь из видеопомех. Замена делителей. Не применяйте экранирование видеокабеля.
- Подбор пониженной яркости. Непрошенные цветофильтры в TV.
- Устранение мерцающей вертикальной линии на правой границе бордюра. Подбор RC-цепочки по осциллограмме.
- Вертикальные штрихи-артефакты между знакоместами при инверсии Ink/Paper
9) Проблемы совместимости и другие просчёты (обзорно):
- Слабая разводка шин питания
- Нестандартный кварц
- Плавающая шина видеоданных
- Отсутствие порта #FF
- Неполное повторение арбитра медленного поля
- Хаос с сигналом INT
---
1) Вертикальная рябь изображения и усыпание точками экранов Basic 48 и TR-DOS, пропадающие при остановке Z80 (удержании кнопки Reset). Причина - ошибка проектирования печатной платы Дельты: дорожка зелёного видеоканала от крайнего потенциометра R44 до базы транзистора VT5 по всей длине примыкает к высокочастотной дорожке A0. Результат - сильные помехи в зелёном канале, синхронно с выводом звука на бипер.
Устранение - отрезать дорожку при повороте на транзистор, вместо неё от движка потенциометра проложить провод поверху.
В принципиальной схеме Дельты перепутаны каналы RGB, равно как и джойстиков Sinclair.
You do not have the required permissions to view the files attached to this post.
Last edited by SKV on 08 Sep 2026 05:19, edited 6 times in total.
-
SKV
- Novelist
- Posts: 42
- Joined: 06 May 2022 08:39
Re: Доработки Дельты-С на 75 микросхемах
2) Видео и аудио на SCART
Я применил разъём SubD9 от IBM COM-порта.
Размах каналов R,G,B уменьшить потенциометрами до 0,7V по осциллографу, поочерёдно выводя красный, зелёный, синий экран (использовать утилиту TEST TV или команды Бейсика PAPER и BORDER).
Потенциометры - от края к центру платы:
R44 - зелёный, выход на схеме 75, на плате не подписан.
R43 - красный, выход на схеме 74, на плате 4.
R42 - синий, выход на схеме 73, на плате 3. 3) Доработки
- RC-цепочка длительности INT. (Альтернатива RC-цепочке - на триггере 1533ТМ2 с гашением от Z80).
Изменено и перенесено ниже.
- Kempston джойстик
- Память 128кБ, AY3-8910, смешивание аудиосигналов Beep+AY+General Sound
16 микросхем РУ5Д2+РУ6 заменить на 16 штук РУ5(Г).
ROM 27128 заменить на 27256 с прошивкой SOS 128 (либо на 27512 с прошивкой SOS 128 + TR-DOS, см. схему у Константина Айги).
Все эти новые микросхемы установить в панельки. На каждую микросхему РУ5 снизу по диагонали напаять блокировочный конденсатор 0,1 мкФ. Рекомендуется напаивать такой конденсатор и на все остальные микросхемы.
Я применил разъём SubD9 от IBM COM-порта.
Размах каналов R,G,B уменьшить потенциометрами до 0,7V по осциллографу, поочерёдно выводя красный, зелёный, синий экран (использовать утилиту TEST TV или команды Бейсика PAPER и BORDER).
Потенциометры - от края к центру платы:
R44 - зелёный, выход на схеме 75, на плате не подписан.
R43 - красный, выход на схеме 74, на плате 4.
R42 - синий, выход на схеме 73, на плате 3. 3) Доработки
- RC-цепочка длительности INT. (Альтернатива RC-цепочке - на триггере 1533ТМ2 с гашением от Z80).
Изменено и перенесено ниже.
- Kempston джойстик
- Память 128кБ, AY3-8910, смешивание аудиосигналов Beep+AY+General Sound
16 микросхем РУ5Д2+РУ6 заменить на 16 штук РУ5(Г).
ROM 27128 заменить на 27256 с прошивкой SOS 128 (либо на 27512 с прошивкой SOS 128 + TR-DOS, см. схему у Константина Айги).
Все эти новые микросхемы установить в панельки. На каждую микросхему РУ5 снизу по диагонали напаять блокировочный конденсатор 0,1 мкФ. Рекомендуется напаивать такой конденсатор и на все остальные микросхемы.
You do not have the required permissions to view the files attached to this post.
Last edited by SKV on 07 Jul 2024 08:24, edited 2 times in total.
-
SKV
- Novelist
- Posts: 42
- Joined: 06 May 2022 08:39
Re: Доработки Дельты-С на 75 микросхемах
4) ZX-bus, арбитр IORQ. Разблокировка Sinclair-джойстиков, отключенных Z-Controller'ом или другим контроллером IBM-клавиатуры.
Вся конструкция с ZX-bus размещается в IBM-корпусе, заодно решается и проблема Спектрумов с мощностью блока питания.
Клавиатура Дельты с прозрачными крышками отвратительна - кнопки заедают при нажатии. Поэтому подключение контроллера IBM-клавиатуры является необходимостью. Поразительно, но разработчики таких контроллеров игнорируют существование Sinclair-джойстика - основного (наряду с Kempston) игрового порта. Контроллер IBM-клавиатуры представляет собой внешний порт #FE, посредством арбитра IORQ блокирующий обращение к штатному порту #FE вместе с интегрированными в него Sinclair-джойстиками - таким образом, эти джойстики становятся недоступными. Глубже историю парадоксов ZX Interface II я освещал в другой своей заметке. Я нашёл решение этой патовой ситуации, применив 4 микросхемы в дополнение к арбитру IORQ на ЛЛ1.
Нажатие любой кнопки на любом из двух Sinclair-джойстиков обнаруживается элементом D5.
Если при этом (что случается 50 раз в секунду) осуществляется чтение порта #F7FE (полуряд 1..5, А11=0) или порта #EFFE (полуряд 0..6, А12=0), то дешифратор D1 элементом D4.4 отключает внешний порт #FE на Z-Controller и элементом D3.2 разрешает выбор внутреннего порта #FE в обход Z-Controller.
Таким образом, происходит автоматическое переключение между кнопками 1..5, 6..0 на клавиатуре и на джойстиках. В момент нажатия кнопок на Sinclair-джойстиках внешняя клавиатура не работает, во все прочие моменты времени она работает.
Элемент D4 (арбитр IORQ) - серии 1531 для минимизации задержки арбитрирования сигнала /IORQ. 5) Gotek как замена дискетам
Я приобрёл Z-Controller, рассчитывая использовать встроенный в него Nemo IDE как решение задачи по переходу от своей коллекции из полусотни дискет к единому надёжному носителю. Однако оказалось, что за истёкшие 20 лет задача использования HDD штатными средствами Спектрума так и не была решена. Ближайшее решение, позволяющее запускать TRD-образы с HDD, состоит в инсталляции DNA OS при условии перепрошивки ROM. При штатном же ROM - HDD (равно как и SD-карту) можно использовать лишь как архивное хранилище TRD-образов (используя также копировщики FAT All или Wild Disk Copier).
Разочарованный, я случайно наткнулся на существование эмуляторов FDD и вышел на Gotek с прошивкой Flash Floppy. Приобрёл Gotek на AliExpress, залил в него прошивку Кейра Фразера Flash Floppy, подключил к Beta Disk как дисковод A, перегнал с дисковода B на воткнутую в Gotek флэшку свою коллекцию дискет в TRD-образы и получил универсальный носитель на USB-флэшке, легко доступный и для использования на Beta Disk, и для переноса TRD-файлов извне (с сайта vtrd.in).
У меня Gotek U144K на исчезающем чипе STM32, и для его прошивки программатор ST-Link V2. Кейр Фразер недавно выложил апдейт, в котором рекомендует Gotek на улучшенной модификации чипа Artery - AT32F435:
«Starting July 2022, the factory is supplying an enhanced MCU option: the Artery AT32F435. This MCU runs at 288MHz and has 384kB SRAM. It is enough for reliable operation, extensive image caching, and will allow for a wider range of firmware features in future. The enhanced firmware which runs on this MCU is called FlashFloppy PLUS (or FlashFloppy+).»
Вся конструкция с ZX-bus размещается в IBM-корпусе, заодно решается и проблема Спектрумов с мощностью блока питания.
Клавиатура Дельты с прозрачными крышками отвратительна - кнопки заедают при нажатии. Поэтому подключение контроллера IBM-клавиатуры является необходимостью. Поразительно, но разработчики таких контроллеров игнорируют существование Sinclair-джойстика - основного (наряду с Kempston) игрового порта. Контроллер IBM-клавиатуры представляет собой внешний порт #FE, посредством арбитра IORQ блокирующий обращение к штатному порту #FE вместе с интегрированными в него Sinclair-джойстиками - таким образом, эти джойстики становятся недоступными. Глубже историю парадоксов ZX Interface II я освещал в другой своей заметке. Я нашёл решение этой патовой ситуации, применив 4 микросхемы в дополнение к арбитру IORQ на ЛЛ1.
Нажатие любой кнопки на любом из двух Sinclair-джойстиков обнаруживается элементом D5.
Если при этом (что случается 50 раз в секунду) осуществляется чтение порта #F7FE (полуряд 1..5, А11=0) или порта #EFFE (полуряд 0..6, А12=0), то дешифратор D1 элементом D4.4 отключает внешний порт #FE на Z-Controller и элементом D3.2 разрешает выбор внутреннего порта #FE в обход Z-Controller.
Таким образом, происходит автоматическое переключение между кнопками 1..5, 6..0 на клавиатуре и на джойстиках. В момент нажатия кнопок на Sinclair-джойстиках внешняя клавиатура не работает, во все прочие моменты времени она работает.
Элемент D4 (арбитр IORQ) - серии 1531 для минимизации задержки арбитрирования сигнала /IORQ. 5) Gotek как замена дискетам
Я приобрёл Z-Controller, рассчитывая использовать встроенный в него Nemo IDE как решение задачи по переходу от своей коллекции из полусотни дискет к единому надёжному носителю. Однако оказалось, что за истёкшие 20 лет задача использования HDD штатными средствами Спектрума так и не была решена. Ближайшее решение, позволяющее запускать TRD-образы с HDD, состоит в инсталляции DNA OS при условии перепрошивки ROM. При штатном же ROM - HDD (равно как и SD-карту) можно использовать лишь как архивное хранилище TRD-образов (используя также копировщики FAT All или Wild Disk Copier).
Разочарованный, я случайно наткнулся на существование эмуляторов FDD и вышел на Gotek с прошивкой Flash Floppy. Приобрёл Gotek на AliExpress, залил в него прошивку Кейра Фразера Flash Floppy, подключил к Beta Disk как дисковод A, перегнал с дисковода B на воткнутую в Gotek флэшку свою коллекцию дискет в TRD-образы и получил универсальный носитель на USB-флэшке, легко доступный и для использования на Beta Disk, и для переноса TRD-файлов извне (с сайта vtrd.in).
У меня Gotek U144K на исчезающем чипе STM32, и для его прошивки программатор ST-Link V2. Кейр Фразер недавно выложил апдейт, в котором рекомендует Gotek на улучшенной модификации чипа Artery - AT32F435:
«Starting July 2022, the factory is supplying an enhanced MCU option: the Artery AT32F435. This MCU runs at 288MHz and has 384kB SRAM. It is enough for reliable operation, extensive image caching, and will allow for a wider range of firmware features in future. The enhanced firmware which runs on this MCU is called FlashFloppy PLUS (or FlashFloppy+).»
You do not have the required permissions to view the files attached to this post.
Last edited by SKV on 07 Jul 2024 08:16, edited 3 times in total.
-
SKV
- Novelist
- Posts: 42
- Joined: 06 May 2022 08:39
Re: Доработки Дельты-С на 75 микросхемах
6) Приложение. Принципиальная схема Дельты-С.
You do not have the required permissions to view the files attached to this post.
-
SKV
- Novelist
- Posts: 42
- Joined: 06 May 2022 08:39
Re: Доработки Дельты-С на 75 микросхемах
You do not have the required permissions to view the files attached to this post.
-
SKV
- Novelist
- Posts: 42
- Joined: 06 May 2022 08:39
Re: Доработки Дельты-С на 75 микросхемах
7) Перечень свободных элементов на плате Дельты-С
После двоеточия указаны номера свободных элементов в корпусе (всего 4 или 6 элементов на корпус).
DD01 1533ЛИ1: 1
DD02 1533ЛН1: 5
DD10 1533ЛИ1: 3
DD11 К555ЛА3: 1
DD12 1533ЛЕ1: 3,4
DD19 1533ТЛ2: 4 (старый неразведённый INT)
DD21 1533ЛН1: 4,5,6
DD29 1533ЛЛ1: 2 (использовал в арбитре МП для GS)
DD49 1533ЛН1: 1,5 (1 использовал в арбитре МП для GS)
DD50 1533ЛП5: 1,2,4
8) Видеосигнал. Часть 2 - Доработка №4. Дождь из помех
В прошлый раз я рассказал, как убрать главную видеопомеху, отрезав дорожку G. Этого недостаточно, т.к. остаётся множество мелких помех в виде дождя, пропадающих при остановке Z80 (удержании сигнала Reset). Сравнение наводок в состояниях Z80 Run / Z80 Stop.
Сверху вниз: Video, G, R, B. Завышенный уровень гашения 0,5V.
После двоеточия указаны номера свободных элементов в корпусе (всего 4 или 6 элементов на корпус).
DD01 1533ЛИ1: 1
DD02 1533ЛН1: 5
DD10 1533ЛИ1: 3
DD11 К555ЛА3: 1
DD12 1533ЛЕ1: 3,4
DD19 1533ТЛ2: 4 (старый неразведённый INT)
DD21 1533ЛН1: 4,5,6
DD29 1533ЛЛ1: 2 (использовал в арбитре МП для GS)
DD49 1533ЛН1: 1,5 (1 использовал в арбитре МП для GS)
DD50 1533ЛП5: 1,2,4
8) Видеосигнал. Часть 2 - Доработка №4. Дождь из помех
В прошлый раз я рассказал, как убрать главную видеопомеху, отрезав дорожку G. Этого недостаточно, т.к. остаётся множество мелких помех в виде дождя, пропадающих при остановке Z80 (удержании сигнала Reset). Сравнение наводок в состояниях Z80 Run / Z80 Stop.
Сверху вниз: Video, G, R, B. Завышенный уровень гашения 0,5V.
You do not have the required permissions to view the files attached to this post.
Last edited by SKV on 07 Jul 2024 11:43, edited 1 time in total.
-
SKV
- Novelist
- Posts: 42
- Joined: 06 May 2022 08:39
Re: Доработки Дельты-С на 75 микросхемах
Полностью устранить эти помехи удастся, только целиком вынеся с материнской платы аналоговый каскад RGBI, где I это яркость.
Промежуточное решение - оптимизировать этот каскад для вывода сигналов в размахе 0,7V по стандарту SCART (изначально RGB-выход Спектрумов имеет размах 2..5V для телевизоров и мониторов 1990-х годов).
Необходимо удалить переменные резисторы 22К, соединив базы транзисторов напрямую, а на эмиттерах заменить делители (пара резисторов запаивается на место исходного, средняя точка поднимается над платой). Вынос этих делителей на выходной разъём AT-корпуса ненамного улучшает результат – нужно выносить с платы весь каскад.
При этом синхросмесь Дельты имеет завышенный уровень гашения 50% вместо 30% (0,5V вместо 0,3V), но это не повлияло на распознавание видеосигнала моим LCD-телевизором.

Эта же картинка на русском.
- Экранирование вредит
Я с удивлением обнаружил, что нельзя использовать экранированный видеокабель (а именно заземлять его экран с любой стороны), даже на коротком участке. Этот факт рушит общепринятую теорию, но очевидно, экран работает как антенна, и помехи (дождь на экране) возобновляются в прежнем объёме!
- Доработка №3. Градации яркости
Цветовая палитра Спектрума имеет 8 цветов и 2 градации яркости (полная и пониженная). Не существует стандарта на уровень RGB сигналов Спектрума при пониженной яркости. В схемах Спектрумов встречаются 3 варианта понижающих резисторов: 3К, 2К, 1К. Каждое уменьшение номинала в этом ряду увеличивает перепад уровня RGB на дополнительные 0,1V (при полном размахе 0,7V). Попробовав все 3 варианта, я остановился на максимальном перепаде 0,3V с резисторами 1К (R38, R34, R41).
Проверять цветопередачу удобно на встроенном в ПЗУ Spectrum 128 тесте, для запуска которого надо удерживать Space (Ctrl+Space на ZC) при нажатии кнопки Reset.
Цветопередачу могут сильно искажать встроенные в LCD-телевизор фильтры. В моём случае LCD Philips при фильтре «Стандартный» исключал градации зелёного и синего. Перебрав все фильтры, я определил, что только половина из них равномерно передаёт градации, и остановился на фильтре «Энергосбережение». - Доработка №1. Вертикальная линия справа На правой границе бордюра присутствует режущая глаз мелькающая линия. Её причина – запаздывающее переключение выходных RGB мультиплексоров с растра на бордюр. Переключение должно происходить с крохотным опережением, измеряемом наносекундами. При большем опережении будут срезаться последние пиксели растра.
На левой границе бордюра для этой же цели введено запаздывающее переключение на растр с помощью цепочки R13-C12.
Решение задачи для правой границы: вводим RC-цепочку на асинхронное обнуление триггера DD20, переключающего мультиплексоры.
Асинхронные входы на исходной схеме перепутаны. Ногу 13 (вход R) отрезать с обеих сторон. Ногу 10 (вход S) подключить обратно к +5V.
RC-номиналы необходимо очень точно подобрать по осциллографу, чтобы при задержке 1800 нс получить сдвиг переключения в пределах 20 нс.
Напаивать RC надо непосредственно на микросхему (при подборе длина проводов или стоек в пару см), иначе в задержку вносится нестабильность 50 нс.
Промежуточное решение - оптимизировать этот каскад для вывода сигналов в размахе 0,7V по стандарту SCART (изначально RGB-выход Спектрумов имеет размах 2..5V для телевизоров и мониторов 1990-х годов).
Необходимо удалить переменные резисторы 22К, соединив базы транзисторов напрямую, а на эмиттерах заменить делители (пара резисторов запаивается на место исходного, средняя точка поднимается над платой). Вынос этих делителей на выходной разъём AT-корпуса ненамного улучшает результат – нужно выносить с платы весь каскад.
При этом синхросмесь Дельты имеет завышенный уровень гашения 50% вместо 30% (0,5V вместо 0,3V), но это не повлияло на распознавание видеосигнала моим LCD-телевизором.
Эта же картинка на русском.
- Экранирование вредит
Я с удивлением обнаружил, что нельзя использовать экранированный видеокабель (а именно заземлять его экран с любой стороны), даже на коротком участке. Этот факт рушит общепринятую теорию, но очевидно, экран работает как антенна, и помехи (дождь на экране) возобновляются в прежнем объёме!
- Доработка №3. Градации яркости
Цветовая палитра Спектрума имеет 8 цветов и 2 градации яркости (полная и пониженная). Не существует стандарта на уровень RGB сигналов Спектрума при пониженной яркости. В схемах Спектрумов встречаются 3 варианта понижающих резисторов: 3К, 2К, 1К. Каждое уменьшение номинала в этом ряду увеличивает перепад уровня RGB на дополнительные 0,1V (при полном размахе 0,7V). Попробовав все 3 варианта, я остановился на максимальном перепаде 0,3V с резисторами 1К (R38, R34, R41).
Проверять цветопередачу удобно на встроенном в ПЗУ Spectrum 128 тесте, для запуска которого надо удерживать Space (Ctrl+Space на ZC) при нажатии кнопки Reset.
Цветопередачу могут сильно искажать встроенные в LCD-телевизор фильтры. В моём случае LCD Philips при фильтре «Стандартный» исключал градации зелёного и синего. Перебрав все фильтры, я определил, что только половина из них равномерно передаёт градации, и остановился на фильтре «Энергосбережение». - Доработка №1. Вертикальная линия справа На правой границе бордюра присутствует режущая глаз мелькающая линия. Её причина – запаздывающее переключение выходных RGB мультиплексоров с растра на бордюр. Переключение должно происходить с крохотным опережением, измеряемом наносекундами. При большем опережении будут срезаться последние пиксели растра.
На левой границе бордюра для этой же цели введено запаздывающее переключение на растр с помощью цепочки R13-C12.
Решение задачи для правой границы: вводим RC-цепочку на асинхронное обнуление триггера DD20, переключающего мультиплексоры.
Асинхронные входы на исходной схеме перепутаны. Ногу 13 (вход R) отрезать с обеих сторон. Ногу 10 (вход S) подключить обратно к +5V.
RC-номиналы необходимо очень точно подобрать по осциллографу, чтобы при задержке 1800 нс получить сдвиг переключения в пределах 20 нс.
Напаивать RC надо непосредственно на микросхему (при подборе длина проводов или стоек в пару см), иначе в задержку вносится нестабильность 50 нс.
You do not have the required permissions to view the files attached to this post.
Last edited by SKV on 08 Jul 2024 12:04, edited 2 times in total.
-
SKV
- Novelist
- Posts: 42
- Joined: 06 May 2022 08:39
Re: Доработки Дельты-С на 75 микросхемах
На осциллограмму вывести:
1. DD20, нога 12 (/Бордюр). Синхронизацию включить в этом канале по нисходящему фронту (правый бордюр).
2. DD53, нога 2 (сигнал Край, переключающий мультиплексоры на бордюр). Восходящий фронт, который мы и настраиваем подбором RC-цепочки.
3. DD53, нога 5 (входной канал видеобита VD5). Нисходящий фронт.
Находясь на заглавном экране Спектрума, выводим в центр осциллограммы пересекающиеся фронты двух последних сигналов (1,8 мкс правее момента синхронизации) и подбираем RC-номиналы, пока Край не станет подниматься чуть раньше, чем падает VD5. При этом вертикальная линия справа исчезнет.
По примеру GS я ориентировался на резистор 470 Ом и подобрал номиналы 460 Ом, 2,2 нФ. Однако теперь (ознакомившись с другими схемами) я думаю, что правильнее (для уменьшения тока) применять в таких цепях резистор 1К. Поэтому советую первоначально взять цепочку 1К, 1 нФ и дальше варьировать точную величину резистора в ней.
Если после прогрева в работе полоска снова появится, придётся уменьшить номинал резистора ещё на несколько Ом.
Теория расчёта интегрирующей и дифференцирующей RC-цепочек для ТТЛ встретилась мне в единственной статье.
- Доработка №2. Вертикальные штрихи
После всех трудов над изображением это ещё не конец.
Во множестве игр на экране появляются артефакты в виде вертикальных штрихов, сильнее всего это выражено в Zynaps. Также эффект сильно проявляется в Serafima. Причина в том, что так проявляется граница между знакоместами, итоговый цвет которых не меняется, но INK и PAPER инвертируются. Поскольку у ТТЛ-логики существует несимметрия задержек распространения для 0 и 1, то выходы логики переключаются неодновременно, а с разбросом в несколько наносекунд, чего оказывается достаточно для возникновения артефактов.
Для решения проблемы предлагается врезать дополнительный синхронный регистр на 4 сигнала B, R, G, I между выходными мультиплексорами DD60, DD53 и буферными элементами DD51.
Регистр тактировать частотой 7 или 14 МГц (подобрать по исчезновению артефактов). На входе в регистр биты переключаются с наносекундным разбросом, а на выход записываются уже синхронно. Следует обратить внимание на минимальную несимметрию задержки распространения 1-0/0-1. Наилучшие варианты - 1533ИР37 (20 ног) и 1533ИР38 (24 ноги). Для них обеих заявлена единая задержка распространения 15 нс. Популярная 1533ИР23, помимо неудобной попарной группировки выводов, имеет несимметричную задержку 18/15 нс.
Схемы более поздних Спектрумов не содержат буферных элементов между мультиплексорами К1533 и выходными транзисторами RGB. Поэтому DD51 (155ЛП5) наверняка следует исключить из схемы, т.к. эта микросхема имеет большую и несимметричную задержку распространения 1-0/0-1 = 22/30 нс.
Для начала можно просто обойти DD51 без применения дополнительного регистра (скорее всего, с её выпаиванием или отрезанием, т.к. серия К155 сильно нагружает DD60, DD53) – возможно, это уже даст положительный эффект.
Схема мною ещё не проверена. Благодарю за помощь Reddie и Prusak.
9) Проблемы совместимости и другие просчёты:
- Слабая разводка шин питания
- Нестандартный кварц
- Плавающая шина видеоданных
- Отсутствие порта #FF
- Неполное повторение арбитра медленного поля
- Хаос с сигналом INT
В отличие от прародителя Львова, в Дельте-С узкие питающие дорожки при большом числе микросхем. Поэтому, помимо напайки блокировочных конденсаторов на каждый корпус, имеет смысл дополнительно развести питание корпусов не самым тонким МГТФ.
Необходимо заменить исходный кварц с нестандартной частотой 13700 кГц на 14000 кГц. После замены заработали испанские игры, которые всегда зависали по окончанию загрузки: Filemon 2, Mad Mix 2, Muncher.
Исследуя шину видеоданных осциллографом, я обнаружил, что, когда ни видеоконтроллер, ни Z80 не обращаются к ней, эта линейка РУ5 (в оригинале РУ6) переходит в третье состояние, и по шине гуляют уровни 2,5V. К каждому разряду шины подключены по 3 ТТЛ-входа и все они воспринимают обрыв сигнала как нестабильную логическую «1». Это и является причиной хаотических ярких точек на правой границе в чёрных играх типа R-Type или Exolon.
Избавление от правой границы RC-цепочкой решает визуальную проблему, но вообще неправильно, что столько ТТЛ-входов подвешиваются в нестабильном состоянии. Поэтому следует притянуть их к одному из двух уровней. Исходя из схемотехники «порта #FF», подтягивать надо к +5V через 10К, подобно главной шине данных.
Часто встречается мнение, что порт #FF не нужен, т.к. его использует малое количество оригинальных игр, большинство которых к тому же уже пропатчено. Однако Дельта-С (продолжение линии Львов, Харьков, Москва) как раз интересна тем, что повторяет оригинальную схему Спектрум-48 с раздельными полями, и поэтому позволяет малыми усилиями повышать совместимость с оригинальным программным обеспечением. Реализация порта #FF необходима для последующей точной настройки положения сигнала INT в тестах ulatest3 и floatspy.
Арбитр медленного поля Дельты-С повторяет оригинальную остановку Clock по комбинации А14+А15 (именно поэтому не следует применять второй вариант моей доработки арбитра МП из темы про GS), но не делает этого по комбинации A0+IORQ (обращение к встроенному в ULA порту #FE) - в случае необходимости можно будет внести в арбитр и такую доработку.
Почему-то у нас принято считать, что порт #FF возвращает байт атрибутов, хотя и в оригинальном Спектруме, и при доработке Дельты-С с шиной данных традиционно соединяли видеошину, а не выход регистра атрибутов. Следовательно, Z80 читает из порта #FF не только байты атрибутов, но и байты растра. Много путаницы внесли в этот вопрос статьи Кирилла Громова.
Повторение оригинального постоянного соединения видеошины через резисторы это плохое решение, потому что паразитно нагружает и без того перегруженную шину данных. Необходимо применить регистр, который будет подключать видеошину через резисторы 820-1K только в моменты, когда Z80 читает любые порты (IORQ+RD). Засорение прерываний при этом не происходит, т.к. для подтверждения Z80 выставляет IORQ+M1, но не RD. (После подключения порта #FF Тест 4.30 показывает неправильное подключение предназначенного только на запись AY-порта #BFFD, но это недоработка самого теста.)
Схема удачно комбинируется с портом Kempston. Для подтяжки видеошины к +5V удобно использовать резисторную сборку 9х10К.
Схема порта #FF мною ещё не проверена.
1. DD20, нога 12 (/Бордюр). Синхронизацию включить в этом канале по нисходящему фронту (правый бордюр).
2. DD53, нога 2 (сигнал Край, переключающий мультиплексоры на бордюр). Восходящий фронт, который мы и настраиваем подбором RC-цепочки.
3. DD53, нога 5 (входной канал видеобита VD5). Нисходящий фронт.
Находясь на заглавном экране Спектрума, выводим в центр осциллограммы пересекающиеся фронты двух последних сигналов (1,8 мкс правее момента синхронизации) и подбираем RC-номиналы, пока Край не станет подниматься чуть раньше, чем падает VD5. При этом вертикальная линия справа исчезнет.
По примеру GS я ориентировался на резистор 470 Ом и подобрал номиналы 460 Ом, 2,2 нФ. Однако теперь (ознакомившись с другими схемами) я думаю, что правильнее (для уменьшения тока) применять в таких цепях резистор 1К. Поэтому советую первоначально взять цепочку 1К, 1 нФ и дальше варьировать точную величину резистора в ней.
Если после прогрева в работе полоска снова появится, придётся уменьшить номинал резистора ещё на несколько Ом.
Теория расчёта интегрирующей и дифференцирующей RC-цепочек для ТТЛ встретилась мне в единственной статье.
- Доработка №2. Вертикальные штрихи
После всех трудов над изображением это ещё не конец.
Во множестве игр на экране появляются артефакты в виде вертикальных штрихов, сильнее всего это выражено в Zynaps. Также эффект сильно проявляется в Serafima. Причина в том, что так проявляется граница между знакоместами, итоговый цвет которых не меняется, но INK и PAPER инвертируются. Поскольку у ТТЛ-логики существует несимметрия задержек распространения для 0 и 1, то выходы логики переключаются неодновременно, а с разбросом в несколько наносекунд, чего оказывается достаточно для возникновения артефактов.
Для решения проблемы предлагается врезать дополнительный синхронный регистр на 4 сигнала B, R, G, I между выходными мультиплексорами DD60, DD53 и буферными элементами DD51.
Регистр тактировать частотой 7 или 14 МГц (подобрать по исчезновению артефактов). На входе в регистр биты переключаются с наносекундным разбросом, а на выход записываются уже синхронно. Следует обратить внимание на минимальную несимметрию задержки распространения 1-0/0-1. Наилучшие варианты - 1533ИР37 (20 ног) и 1533ИР38 (24 ноги). Для них обеих заявлена единая задержка распространения 15 нс. Популярная 1533ИР23, помимо неудобной попарной группировки выводов, имеет несимметричную задержку 18/15 нс.
Схемы более поздних Спектрумов не содержат буферных элементов между мультиплексорами К1533 и выходными транзисторами RGB. Поэтому DD51 (155ЛП5) наверняка следует исключить из схемы, т.к. эта микросхема имеет большую и несимметричную задержку распространения 1-0/0-1 = 22/30 нс.
Для начала можно просто обойти DD51 без применения дополнительного регистра (скорее всего, с её выпаиванием или отрезанием, т.к. серия К155 сильно нагружает DD60, DD53) – возможно, это уже даст положительный эффект.
Схема мною ещё не проверена. Благодарю за помощь Reddie и Prusak.
9) Проблемы совместимости и другие просчёты:
- Слабая разводка шин питания
- Нестандартный кварц
- Плавающая шина видеоданных
- Отсутствие порта #FF
- Неполное повторение арбитра медленного поля
- Хаос с сигналом INT
В отличие от прародителя Львова, в Дельте-С узкие питающие дорожки при большом числе микросхем. Поэтому, помимо напайки блокировочных конденсаторов на каждый корпус, имеет смысл дополнительно развести питание корпусов не самым тонким МГТФ.
Необходимо заменить исходный кварц с нестандартной частотой 13700 кГц на 14000 кГц. После замены заработали испанские игры, которые всегда зависали по окончанию загрузки: Filemon 2, Mad Mix 2, Muncher.
Исследуя шину видеоданных осциллографом, я обнаружил, что, когда ни видеоконтроллер, ни Z80 не обращаются к ней, эта линейка РУ5 (в оригинале РУ6) переходит в третье состояние, и по шине гуляют уровни 2,5V. К каждому разряду шины подключены по 3 ТТЛ-входа и все они воспринимают обрыв сигнала как нестабильную логическую «1». Это и является причиной хаотических ярких точек на правой границе в чёрных играх типа R-Type или Exolon.
Избавление от правой границы RC-цепочкой решает визуальную проблему, но вообще неправильно, что столько ТТЛ-входов подвешиваются в нестабильном состоянии. Поэтому следует притянуть их к одному из двух уровней. Исходя из схемотехники «порта #FF», подтягивать надо к +5V через 10К, подобно главной шине данных.
Часто встречается мнение, что порт #FF не нужен, т.к. его использует малое количество оригинальных игр, большинство которых к тому же уже пропатчено. Однако Дельта-С (продолжение линии Львов, Харьков, Москва) как раз интересна тем, что повторяет оригинальную схему Спектрум-48 с раздельными полями, и поэтому позволяет малыми усилиями повышать совместимость с оригинальным программным обеспечением. Реализация порта #FF необходима для последующей точной настройки положения сигнала INT в тестах ulatest3 и floatspy.
Арбитр медленного поля Дельты-С повторяет оригинальную остановку Clock по комбинации А14+А15 (именно поэтому не следует применять второй вариант моей доработки арбитра МП из темы про GS), но не делает этого по комбинации A0+IORQ (обращение к встроенному в ULA порту #FE) - в случае необходимости можно будет внести в арбитр и такую доработку.
Почему-то у нас принято считать, что порт #FF возвращает байт атрибутов, хотя и в оригинальном Спектруме, и при доработке Дельты-С с шиной данных традиционно соединяли видеошину, а не выход регистра атрибутов. Следовательно, Z80 читает из порта #FF не только байты атрибутов, но и байты растра. Много путаницы внесли в этот вопрос статьи Кирилла Громова.
Повторение оригинального постоянного соединения видеошины через резисторы это плохое решение, потому что паразитно нагружает и без того перегруженную шину данных. Необходимо применить регистр, который будет подключать видеошину через резисторы 820-1K только в моменты, когда Z80 читает любые порты (IORQ+RD). Засорение прерываний при этом не происходит, т.к. для подтверждения Z80 выставляет IORQ+M1, но не RD. (После подключения порта #FF Тест 4.30 показывает неправильное подключение предназначенного только на запись AY-порта #BFFD, но это недоработка самого теста.)
Схема удачно комбинируется с портом Kempston. Для подтяжки видеошины к +5V удобно использовать резисторную сборку 9х10К.
Схема порта #FF мною ещё не проверена.
You do not have the required permissions to view the files attached to this post.
Last edited by SKV on 12 Jul 2024 23:26, edited 1 time in total.
-
SKV
- Novelist
- Posts: 42
- Joined: 06 May 2022 08:39
Re: Доработки Дельты-С на 75 микросхемах
- Сигнал INT
Разработчики отечественных клонов демонстрировали полное невежество в формировании сигнала INT, что представляет необъяснимый контраст по сравнению с тщательностью клонирования остальной архитектуры ULA.
В Дельте-С этот сигнал был спроектирован как импульсы /ККадра длиной порядка 20 мкс и формирующиеся где-то в середине кадра.
Видимо, запуск в серию показал авторам непригодность этого решения, потому что дорожку стёрли с фотошаблона, а на INT стали проводом кидать кадровый синхроимпульс (Тайм) длиной 257 мкс вместо необходимых 9 мкс (32 такта).
Следствие такого длинного INT – его многократный захват процессором и искажённая до неузнаваемости биперная музыка во множестве игр. Поэтому мы будем укорачивать его дифференцирующей цепочкой.
Но остался вопрос: в какой момент кадра должен приходить INT в фирменном Спектруме (чтобы нам добиться максимальной совместимости с фирменным программным обеспечением)?
По этому вопросу мы снова имеем противоречивые сведения. Например, вторая статья Кирилла Громова в Спектрофоне №14:
«Аксиома: сигнал INT вырабатывается по заднему фронту кадрового синхроимпульса и имеет длительность 9мкс.
ATTENTION! Результаты замеров, проведённых в фирменном "СПЕКТРУМЕ 48k" показали, что длительность INT 9 мкс, а положение - в начале кадрового синхроимпульса.»
Для поиска истины обратимся к игре Venom, которая примечательна тем, что на главном экране содержит мультиколор и бордюрный эффект, а потому может использоваться в качестве теста.
При выдаче INT по переднему фронту КСИ бордюрная полоса выше экранной (так же и в Тесте 4.30), а мультиколор рассыпается по отдельным фрагментам букв. При выдаче INT по заднему фронту КСИ бордюрная полоса ниже экранной (а в Тесте 4.30 совпадает с фирменной), а мультиколор поднимается по надписи ровными тонкими полосками.
Разработчики отечественных клонов демонстрировали полное невежество в формировании сигнала INT, что представляет необъяснимый контраст по сравнению с тщательностью клонирования остальной архитектуры ULA.
В Дельте-С этот сигнал был спроектирован как импульсы /ККадра длиной порядка 20 мкс и формирующиеся где-то в середине кадра.
Видимо, запуск в серию показал авторам непригодность этого решения, потому что дорожку стёрли с фотошаблона, а на INT стали проводом кидать кадровый синхроимпульс (Тайм) длиной 257 мкс вместо необходимых 9 мкс (32 такта).
Следствие такого длинного INT – его многократный захват процессором и искажённая до неузнаваемости биперная музыка во множестве игр. Поэтому мы будем укорачивать его дифференцирующей цепочкой.
Но остался вопрос: в какой момент кадра должен приходить INT в фирменном Спектруме (чтобы нам добиться максимальной совместимости с фирменным программным обеспечением)?
По этому вопросу мы снова имеем противоречивые сведения. Например, вторая статья Кирилла Громова в Спектрофоне №14:
«Аксиома: сигнал INT вырабатывается по заднему фронту кадрового синхроимпульса и имеет длительность 9мкс.
ATTENTION! Результаты замеров, проведённых в фирменном "СПЕКТРУМЕ 48k" показали, что длительность INT 9 мкс, а положение - в начале кадрового синхроимпульса.»
Для поиска истины обратимся к игре Venom, которая примечательна тем, что на главном экране содержит мультиколор и бордюрный эффект, а потому может использоваться в качестве теста.
При выдаче INT по переднему фронту КСИ бордюрная полоса выше экранной (так же и в Тесте 4.30), а мультиколор рассыпается по отдельным фрагментам букв. При выдаче INT по заднему фронту КСИ бордюрная полоса ниже экранной (а в Тесте 4.30 совпадает с фирменной), а мультиколор поднимается по надписи ровными тонкими полосками.
You do not have the required permissions to view the files attached to this post.
-
SKV
- Novelist
- Posts: 42
- Joined: 06 May 2022 08:39
Re: Доработки Дельты-С на 75 микросхемах
Очевидно, что второе положение более верное, хотя и оно не окончательное, потому что бордюрная полоса в Venom должна точно совмещаться с экранной (просится INT сдвинуть чуть назад, до заднего фронта КСИ). Для дальнейшего изучения надо использовать игры Aquaplane, Vectron, и тесты порта #FF ulatest3, floatspy.
Эта работа ещё не закончена. Почему-то никто из участников zx-pk, успешно экспериментирующих с формированием INT в клонах Львов, Харьков, Москва, Дельта, не выложил окончательного отчёта со схемой. Возможно, придётся формировать INT в 2 ступени через длинную задержку 250 мкс от переднего фронта КСИ, либо искать причину в нюансах таймингов, как вышеупомянутое отсутствие остановки Clock по обращению к порту #FE.
В текущей схеме выдачи INT по заднему фронту я использовал изначально предусмотренный в схеме для этой цели инвертор DD12.4 (ТЛ2). Я обрезал проходящую через его вход дорожку /ККадра с обеих сторон, и соединил её в обход. Однако, можно применить любой свободный инвертор, их на плате много.
RC-импульс настроил ровно на 9 мкс (1 кОм, 4,3 нФ). Тест 4.30 показывает длительность INT в неизвестных единицах (24 цикла). Верную длительность в тактах показывает Tест INT Ковалевского (32 такта). (Он же имеет и малозаметную бордюрную полоску для калибровки. Как и в Venom, она ниже эталонной. Однако, на zx-pk писали, что с оригинальным Спектрумом она тоже не совпадает.)
На осциллограмме канал 1 - /КСИ, канал 2 - /INT.
Эта работа ещё не закончена. Почему-то никто из участников zx-pk, успешно экспериментирующих с формированием INT в клонах Львов, Харьков, Москва, Дельта, не выложил окончательного отчёта со схемой. Возможно, придётся формировать INT в 2 ступени через длинную задержку 250 мкс от переднего фронта КСИ, либо искать причину в нюансах таймингов, как вышеупомянутое отсутствие остановки Clock по обращению к порту #FE.
В текущей схеме выдачи INT по заднему фронту я использовал изначально предусмотренный в схеме для этой цели инвертор DD12.4 (ТЛ2). Я обрезал проходящую через его вход дорожку /ККадра с обеих сторон, и соединил её в обход. Однако, можно применить любой свободный инвертор, их на плате много.
RC-импульс настроил ровно на 9 мкс (1 кОм, 4,3 нФ). Тест 4.30 показывает длительность INT в неизвестных единицах (24 цикла). Верную длительность в тактах показывает Tест INT Ковалевского (32 такта). (Он же имеет и малозаметную бордюрную полоску для калибровки. Как и в Venom, она ниже эталонной. Однако, на zx-pk писали, что с оригинальным Спектрумом она тоже не совпадает.)
На осциллограмме канал 1 - /КСИ, канал 2 - /INT.
You do not have the required permissions to view the files attached to this post.
-
Shaos
- Admin
- Posts: 25284
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
Re: Доработки Дельты-С на 75 микросхемах
Я гляжу огромная работа проделана! 
-
SKV
- Novelist
- Posts: 42
- Joined: 06 May 2022 08:39
Re: Доработки Дельты-С на 75 микросхемах
Плата расширений для Дельты-С на 75ИС. Подключение геймпадов Dendy.
Описываемые мною ранее доработки аккумулированы на печатной плате в габарите Дельты, устанавливаемой вторым этажом на базовую плату. Плата изготовлена в 5 экземплярах, пилотный образец собран и запущен. Благодарю RomanRom2 и Сергея Ефремова за помощь в проектировании и заказе печатной платы. Для желающих заказать изготовление прилагаю гербер и проект в EasyEDA.
(Остающиеся у меня 4 экземпляра платы предлагаю желающим по себестоимости 1тр+доставка, можно обратиться в личку.)
Иллюстрации увеличиваются при нажатии.
Все иллюстрации этой статьи можно скачать одним архивом.



Самая интересная функция платы - 3 джойстика Dendy (Кемпстон и 2 Синклера, параллельно привычным механическим), может быть полезна не только владельцам Дельты 75ИС, но и прочих Дельт в том же габарите, т.к. может работать на любом Спектруме, в схеме которого предусмотрены Sinclair-джойстики (параллельно механическим кнопкам 1..5, 6..0). Джойстики Dendy подключаются без переделок геймпадов, работает функция Autofire A, Autofire B. Режим 3 дополнительных кнопок переключаемый 5/8 бит, с индикатором переключения.
Схема на обычной логике 1533 (без применения ПЛИС). Свободная половина платы отведена под макетное поле для DIP-корпусов.
Остальные функции платы:
- Расширение Дельты 75ИС до 128К
- Музыкальный чип AY в корпусе DIP40. Аудиомиксер Веер+AY+внешний вход (от GS).
- Буферизация Z80 (буфер шины данных не проверялся)
- Порт #FF, отключаемый джампером (не проверялся)
- Переключатель 7-сегментного индикатора Hi/Lo на АТ-корпусе, я использовал его для индикации защёлки 48/128К. Джампер для подачи произвольного сигнала. (В плате есть ошибка, устраняется нетрудно.)
Ошибки на плате ревизии 1.0:
- Видеовыход. В плате задумывалось вынести видеовыход вместе с синхронным регистром, но плотная разводка транзисторов оказалась ошибочной, приведя к перекрёстным помехам в виде возвращения мерцающих вертикальных штрихов, уже при наличии входного синхронного регистра. При желании можно собрать транзисторную часть на макетном поле. Я обошёлся обширной доработкой на базовой плате, при этом проблема с видеопомехами окончательно решилась. Подробнее ниже.
- Индикатор Hi/Lo. Исправление:
Отрезать (сверху) базу VT6 и соединить её с коллектором VT5.
Через 2К соединить её также с +5V.
В качестве VT6 применяется КТ3102, как и VT5.

- При переключении в 8-битный режим 3 дополнительных кнопок Sinclair-геймпадов моя схема переключает 4 кнопки, включая кнопку Огонь. Но как оказалось, игры (Mystical, Golden Axe) зачем-то запрещают выбор Sinclair-кнопок в режиме Redefine keys. Поэтому схему надо доработать, чтобы Огонь (кнопка В) не затрагивалась переключением: впаять в макетном поле ЛЛ1, задействовать 2 её элемента, выходы подаются на поднятые над платой диоды D17 и D25.

- Не предусмотрена резисторная сборка 10К за буфером шины данных, она может оказаться там нужной для таких слабых чипов как ВГ93. При необходимости можно напаять сборку снизу на АП6.
- Разъём Reset (CN7) задевает чип AY, придётся отогнуть пины разъёма.
- На ИР37 (U5) лучше выдвинуть блокировочный конденсатор из-под микросхемы.
- Сигнал ROM48 не обязательно заводить на задний CN2, можно подать его на плату-1 от бокового CN4 через свободный пин XP1/A15.
- Футпринт транзисторов без отгибания центрального вывода, чрезвычайно неудобно в пайке.
- Малый диаметр всех контактных площадок, паять только узким жалом с обильным применением флюса.
*
Плата устанавливается вторым этажом на 5 стойках высотой 20 мм с винтами М2.5, отлаживать плату можно и нужно поблочно. Родной корпус Дельты при этом оказывается неприменим, можно использовать корпус ATX.
Наиболее сложной доработкой является расширение до 128К, в связи с большим количеством заменяемых микросхем (17 штук). Впрочем, исходное ПЗУ-48 при этом менять необязательно - 128К будет работать и так, а исходные РУ5Д/РУ6 можно не выпаивать, а выкусить бокорезами - вряд ли они где-нибудь пригодятся. Плата не требует обязательной переделки в 128К, все остальные её функции могут использоваться и на Дельте 48К.
Плата не имеет на борту разъёмов для магнитофона и клавиатуры - точки их подключения остаются на базовой плате.
Все 10-пиновые разъёмы разведены так, чтобы можно было для проверки воткнуть стандартный СОМ-переходник IDC10F-SubD9M (при этом придётся либо рассверлить заглушку пина 10 в IDC10F, либо удалить этот пин).
Терминология:
Плата-1 = Базовая плата Дельты 75ИС
Плата-2 = Описываемая плата расширения вторым этажом
Плата-3 = Внешняя плата слотов ZX-bus, стыкуемая кабелем к плате-2
Габариты и сверление платы-1 под стойки крепежа

Разбивка на блоки

Схема 1.0 в EasyEDA

Схема в удобочитаемом виде (без точного соответствия плате-2 и включая все доработки платы-1, BDI и плату-3)


Список деталей

*
Подробнее про функции платы-2:
- Дельта-48 превращается в классический Спектрум-128 с его двумя полями по 64К (быстрым и медленным) и портом #FF (отключается джампером J2), чем и ценна Дельта 75ИС и её почти полностью открытая архитектура. Дельта 75ИС сразу имеет на плате место под 2 линейки RAM, и остаётся только заменить их на РУ5Г. Недостаток Дельты 75ИС - реализация портов клавиатуры и принтера на ПЛМ, поэтому плату-1 трудно изготовить новодельно.
(Из моей коллекции избранных игр на Дельте сейчас не работают только две: Square Heads и русская адаптация Twilight (Страна Теней). Обе они в ходе загрузки портят экран набором разноцветных квадратиков. Буду благодарен, если кто-нибудь подскажет причину этой несовместимости. Англоязычная Twilight работает.)

- Z80 буферизуется, т.к. его выходы будут перегружены при подключении периферии на ZX-bus. При буферизации нагрузочная способность сигналов адреса и управления возрастает с 2 до 24 мА. Шина данных разделяется по границе с ZX-bus.
- 3 спаренных джойстика Dendy+Механический с переключаемым режимом 5/8 бит и индикатором переключения. Также предусмотрено переключение между штатным и внешним портами #FE. Штатный порт включается по нажатию любой кнопки Sinclair-джойстиков, в остальное время включен внешний порт Z-контроллера. Для этой цели мною доработана прошивка ZC.
- Переключатель двух нагрузок до 100 мА по произвольному ТТЛ-сигналу с джампером J1 (светодиоды и т.п.). Например, у меня это переключение 7-сегментного индикатора на АТ-корпусе: индикация «48/128» переключается по сигналу Lock48 порта #7FFD. Потребление данного индикатора 77 мА.
- Ранее у меня много текста было посвящено борьбе с видеопомехами. Как я выше упомянул, моя разводка видеокаскада на плате-2 без предварительного макетирования оказалась ошибочной. Поэтому для владельцев ревизии 1.0 есть 3 пути доработать негодный видеовыход:
Путь 1 (так сделал я). Доработка на плате-1, а на плате-2 выходные делители и выходной AV-разъём.
Помучившись, на плате-1 регистр ИР37 посадить на место 155ЛП5 (DD51).
Отрезать между видеотранзисторами дорожку 3,5МГц на Z80.
С помощью МГТФ доработать по схеме согласования со SCART, выкинув подстроечные резисторы баз с их петляющими дорожками, прилегающими к дорожке адреса А0.
На плате-2 запаиваются выходные делители и разъём, а вместо ИР37 перемычки.

(Доработки МГТФ на нижней стороне можно увидеть на фото платы-1 внизу статьи. Разрезы не отмечены.)
Путь 2. Сборка транзисторной части с помощью МГТФ на макетном поле платы-2.
Всё, кроме транзисторов, впаять на штатные места. Транзисторы запаять на макетном поле под ИР37, для исключения перекрёстных импульсных помех соблюдая правило: транзисторы отодвинуты друг от друга и от входных сигналов на их базы. Для образца изучить размещение транзисторов на базовой плате - оно работает.
Путь 3. Вместо неудачных видеовыходов платы-1 и платы-2 использовать внешний видеоконвертер (scan doubler), подавая на него ТТЛ-сигналы RGBI (входы для ИР37) и получая в результате SCART, VGA или HDMI.
*
Буферизация
Почему-то среди спектрумистов существует мнение, что Z84С00/CMOS имеет бОльшую нагрузочную способность выходов, чем Z84000. Но даташиты этого не подтверждают – в обоих случаях IOL=2мА. А вот ток собственного потребления у CMOS действительно снижен в 10 раз - с 200 до 20 мА (на частоте 4МГц).

Подсчитаем нагрузку на шины.
ША: при условии задействования периферии BDI+GS+ZC суммарный IIL на большей части линий =1,8 мА. И это при условии, что используются только входы серии 1533.
Суммарная ёмкость входов превысила номинальную 100 пФ, а ведь ещё присутствует немалая ёмкость монтажа и междуплатных кабелей.

ШД: при тех же условиях суммарный IIL=2,2 мА, IIH=0,5 мА, суммарная ёмкость входов 208 пФ.
Разделив шину буфером по границе ZX-bus, получим две небуферизованные зоны с примерно IIL=1мА, IIH=0,24 мА, и 100 пФ каждая, что тоже неоптимально, но лучше, чем полное отсутствие буферизации.
В отличие от ША, на ШД много источников сигнала, из которых, согласно даташитам, музыкальный чип и ВГ93 имеют очень слабую нагрузочную способность IOH=0,1 мА. На втором месте чипы ROM c IOH=0,4 мА.
Плюсовая подтяжка 10К решает эту проблему при её нахождении в одной зоне с таким чипом (одновременно нагружая IOL). Но после разделения по ZX-bus ВГ93 окажется лишён подтяжки. Возможно, на плате-2 стоило бы предусмотреть резисторную сборку 10К за буфером, но пока что при необходимости можно напаять её к ножкам АП6.
АП6 имеет смысл установить в панельку на случай возможных экспериментов с обходом буфера.
Переключение направления АП6 происходит внешним сигналом /Dir, формируемым на стороне ZX-bus (плата-3) по "или" от всех /IOGE и /CRGE.

(Идея Nemo по замеру ёмкости шинных линий.)
*
Джойстики
Намного интереснее играть не в одиночку, а вдвоём или втроём - этому уделяется непростительно мало внимания разработчиками игр и железа. Из качественных игр вспомним Головобол, Ангелы, Rodland, Toobin!, Barbarian, Fist, Batty, Tetris2, Scate ball - не набралось и дюжины.
Массовый в прошлом механический джойстик (с возможностью электронного Autofire) Cheetah 125 (у нас в виде его советских клонов) имеет крайне грубую контактную систему из стальных пластин, точность его срабатывания неудовлетворительна, а при отломе пластиковой опоры заменить его напрямую нечем.
Полезная ссылка по замене контактной системы этого джойстика.
Хорошая идея использовать свежеизготовленные геймпады для Dendy, которые легкодоступны на маркет-плейсах. К описываемой плате они подключаются без всяких переделок (не требуется кропотливая работа с резкой и пайкой тоненьких дорожек и заменой кабеля и разъёма). Кнопки свежекупленных геймпадов из токопроводящей резины работали через раз, но в первый же день разработались и нажатие стало безупречным (наклейка фольги не требуется).
Геймпад Dendy выдаёт в последовательном коде 8 бит кнопок, обеспечивая 3 дополнительные кнопки: A, C, Start (и 2 кнопки Autofire A, Autofire B). Кнопка В соответствует привычной кнопке Огонь.
Я придумал 2 режима (5/8 бит) для дополнительных кнопок, выбираемых общим для всех 3 джойстиков переключателем (например, ключ Turbo на корпусе АТ). Плата позволяет выделить отдельный переключатель режима для Kempston (с джампером J3).
В режиме 5 бит дополнительные кнопки дублируют крестовину: А=Вниз, С=Вверх, Start=Вправо.

На данном геймпаде:
X = Autofire A (Turbo A)
Y = Autofire B (Turbo B) = Огонь
Z = C
В режиме 8 бит дополнительные кнопки становятся независимыми.
На Sinclair-джойстиках они задействуют клавишный ряд Q..P, но одновременно в него перемещается и кнопка В=Огонь, что оказалось неудачным упрощением схемы. Исправление этой ошибки описано в начале статьи.

На Kempston функция кнопки В=D4 в расширенном режиме не меняется, 3 дополнительных бита: С=D5, A=D6, Start=D7. В базовом режиме эти биты =0.
3 разъёма SubD9М для Dendy-джойстиков подключаются к общему для них разъёму CN14. Все сигналы на SubD9 запаять параллельно, за исключением сигналов Data1,2,3. Для АТ-корпуса я использовал планку COM-порта, вырезав в ней ещё 2 проёма. Такая планка чуть не вписывается в корпус, его приходится тоже подпиливать. Для идеального размещения разъёмов надо брать полностью пустую планку-заглушку, и вырезАть в ней 3 проёма с нуля.

Тактовую частоту для опроса джойстиков можно менять в широких переделах (например, от 0 до 100 кГц), но схема требует прямого и инверсного тактового сигнала. Я нашёл в Дельте готовый инвертор DD7 с сигналом 15,6 кГц для строчной развёртки.
(Если кто-то будет использовать плату-2 не в составе Дельты 75ИС, то необязательно иметь на плате-1 готовый инвертор - можно впаять ЛН1 на макетном поле. Свободных инверторов на плате-2 нет.
Я создавал свою схему на основе этой с Хабра. Она ошибочна как раз из-за отсутствия инвертированного тактового сигнала.)
U14 ИЕ5 делит тактовую частоту, формируя сигнал Latch через каждые 8 бит такта.
U24 ЛА2 формирует сигнал Joy по нажатию любой кнопки на любом Sinclair-джойстике. Этот сигнал выведен во внешнюю плату ZX-bus (плату-3) для схемы обхода внешнего контроллера клавиатуры с его собственным портом #FE.
*
Возможность одновременного использования механических джойстиков (равно как и электронных с параллельным выходным кодом и функцией Autofire) сохранена и дополнена функциональностью 8 бит. На плате 3 отдельных разъёма для параллельных джойстиков (CN13,17,18).
Из них для Kempston режим 8 бит неотключаемый, для Sinclair-1,2 присутствует то же переключение 5/8 бит, как для Dendy-джойстиков. Для этого в разъёмах Sinclair используются 2 общих провода: штатный RA12/11 для 5 базовых кнопок, и S1CS/S2CS для 3 дополнительных кнопок.
При этом через SubD9 трудно задействовать все 8 бит, поэтому надо либо переходить на трёхрядный SubD15 (как у VGA), либо довольствоваться 7 кнопками, либо изолировать и задействовать металлический корпус SubD9 в качестве 10 контакта.
А если потребуется вывести на такой параллельный джойстик питание +5V/GND (для функции Autofire или буферизации механических контактов), то поможет только переход на трёхрядный SubD15 с питанием от дополнительного 2-пинового разъёма, который можно впаять в ближайшем макетном поле.
*
Подключение к Дельте
Большинство сигналов на базовую плату Дельты (плату-1) от платы-2 подключается через похожий боковой разъём CN4 с двумя задействованными рядами AC*32. Расположенный рядом CN3 предназначен для подключения к ZX-bus, хотя эти 2 разъёма полностью взаимозаменяемы, их распайка дублируется.
При этом их распайка не совпадает с разъёмом Дельты, потому что это крайне усложняло разводку платы. К сожалению, при необходимости подключить к плате-2 имеющуюся периферию Дельты придётся паять новый кабель или переходник.
Все разъёмы платы-2 с шагом 2,54. При старании можно втиснуть сюда СНП59 с его шагом 2,5. Но нет смысла держаться за труднодоступные СНП59, поберегите их для оригинальной платы-1.
А здесь лучше применить легкодоступные разъёмы DIN41612 (я покупал в "Чип и Дип"). Но будьте осторожны с китайской маркировкой пинов, потому что она отсчитывается произвольно: например, у Connfly нумерация пинов углового папы и ответных мам совпадает с СНП59, а нумерация пинов прямого папы резко отличается.
Ещё больше разнообразие нумераций прямого разъёма в фирменной библиотеке EasyEDA. Поэтому следуйте нумерации пинов на шелкографии или на угловом папе СНП59. (Об этом моё примечание на принципиальной схеме.)
Сигналы, отсутствующие на штатном правом разъёме Дельты, подпаиваются непосредственно к плате Дельты проводами до двух задних разъёмов АС*16.
/IORQ' и /OutIORQ
- При выносе Z80 (для его буферизации) сигнал /OutIORQ с платы-2 подаётся на штатный пин /IORQ ХР1/С16 , а /IORQ' c платы-2 требуется дополнительно подать на плату-1 только при использовании GS на ZX-bus (доработка арбитра RAM).
- Если Z80 не выносится, то при использовании ZX-bus надо дорабатывать исходный контур /IORQ на плате-1. Через штатный пин ХР1/С16 /IORQ поступает на плату-2, а /OutIORQ возвращается с неё через новый пин ХР1/А16. На плате-1 надо отрезать от /IORQ порт #FE и порт принтера и подать в эти 2 точки внешний сигнал /OutIORQ. Если порт принтера не нужен, то на DD72/27 достаточно подать +5V.
Когда Z80 не выносится, также необходимо соединить между платами сигнал Reset (пин ХР1/С27).




Описываемые мною ранее доработки аккумулированы на печатной плате в габарите Дельты, устанавливаемой вторым этажом на базовую плату. Плата изготовлена в 5 экземплярах, пилотный образец собран и запущен. Благодарю RomanRom2 и Сергея Ефремова за помощь в проектировании и заказе печатной платы. Для желающих заказать изготовление прилагаю гербер и проект в EasyEDA.
(Остающиеся у меня 4 экземпляра платы предлагаю желающим по себестоимости 1тр+доставка, можно обратиться в личку.)
Иллюстрации увеличиваются при нажатии.
Все иллюстрации этой статьи можно скачать одним архивом.
Самая интересная функция платы - 3 джойстика Dendy (Кемпстон и 2 Синклера, параллельно привычным механическим), может быть полезна не только владельцам Дельты 75ИС, но и прочих Дельт в том же габарите, т.к. может работать на любом Спектруме, в схеме которого предусмотрены Sinclair-джойстики (параллельно механическим кнопкам 1..5, 6..0). Джойстики Dendy подключаются без переделок геймпадов, работает функция Autofire A, Autofire B. Режим 3 дополнительных кнопок переключаемый 5/8 бит, с индикатором переключения.
Схема на обычной логике 1533 (без применения ПЛИС). Свободная половина платы отведена под макетное поле для DIP-корпусов.
Остальные функции платы:
- Расширение Дельты 75ИС до 128К
- Музыкальный чип AY в корпусе DIP40. Аудиомиксер Веер+AY+внешний вход (от GS).
- Буферизация Z80 (буфер шины данных не проверялся)
- Порт #FF, отключаемый джампером (не проверялся)
- Переключатель 7-сегментного индикатора Hi/Lo на АТ-корпусе, я использовал его для индикации защёлки 48/128К. Джампер для подачи произвольного сигнала. (В плате есть ошибка, устраняется нетрудно.)
Ошибки на плате ревизии 1.0:
- Видеовыход. В плате задумывалось вынести видеовыход вместе с синхронным регистром, но плотная разводка транзисторов оказалась ошибочной, приведя к перекрёстным помехам в виде возвращения мерцающих вертикальных штрихов, уже при наличии входного синхронного регистра. При желании можно собрать транзисторную часть на макетном поле. Я обошёлся обширной доработкой на базовой плате, при этом проблема с видеопомехами окончательно решилась. Подробнее ниже.
- Индикатор Hi/Lo. Исправление:
Отрезать (сверху) базу VT6 и соединить её с коллектором VT5.
Через 2К соединить её также с +5V.
В качестве VT6 применяется КТ3102, как и VT5.
- При переключении в 8-битный режим 3 дополнительных кнопок Sinclair-геймпадов моя схема переключает 4 кнопки, включая кнопку Огонь. Но как оказалось, игры (Mystical, Golden Axe) зачем-то запрещают выбор Sinclair-кнопок в режиме Redefine keys. Поэтому схему надо доработать, чтобы Огонь (кнопка В) не затрагивалась переключением: впаять в макетном поле ЛЛ1, задействовать 2 её элемента, выходы подаются на поднятые над платой диоды D17 и D25.
- Не предусмотрена резисторная сборка 10К за буфером шины данных, она может оказаться там нужной для таких слабых чипов как ВГ93. При необходимости можно напаять сборку снизу на АП6.
- Разъём Reset (CN7) задевает чип AY, придётся отогнуть пины разъёма.
- На ИР37 (U5) лучше выдвинуть блокировочный конденсатор из-под микросхемы.
- Сигнал ROM48 не обязательно заводить на задний CN2, можно подать его на плату-1 от бокового CN4 через свободный пин XP1/A15.
- Футпринт транзисторов без отгибания центрального вывода, чрезвычайно неудобно в пайке.
- Малый диаметр всех контактных площадок, паять только узким жалом с обильным применением флюса.
*
Плата устанавливается вторым этажом на 5 стойках высотой 20 мм с винтами М2.5, отлаживать плату можно и нужно поблочно. Родной корпус Дельты при этом оказывается неприменим, можно использовать корпус ATX.
Наиболее сложной доработкой является расширение до 128К, в связи с большим количеством заменяемых микросхем (17 штук). Впрочем, исходное ПЗУ-48 при этом менять необязательно - 128К будет работать и так, а исходные РУ5Д/РУ6 можно не выпаивать, а выкусить бокорезами - вряд ли они где-нибудь пригодятся. Плата не требует обязательной переделки в 128К, все остальные её функции могут использоваться и на Дельте 48К.
Плата не имеет на борту разъёмов для магнитофона и клавиатуры - точки их подключения остаются на базовой плате.
Все 10-пиновые разъёмы разведены так, чтобы можно было для проверки воткнуть стандартный СОМ-переходник IDC10F-SubD9M (при этом придётся либо рассверлить заглушку пина 10 в IDC10F, либо удалить этот пин).
Терминология:
Плата-1 = Базовая плата Дельты 75ИС
Плата-2 = Описываемая плата расширения вторым этажом
Плата-3 = Внешняя плата слотов ZX-bus, стыкуемая кабелем к плате-2
Габариты и сверление платы-1 под стойки крепежа
Разбивка на блоки
Схема 1.0 в EasyEDA
Схема в удобочитаемом виде (без точного соответствия плате-2 и включая все доработки платы-1, BDI и плату-3)
Список деталей
*
Подробнее про функции платы-2:
- Дельта-48 превращается в классический Спектрум-128 с его двумя полями по 64К (быстрым и медленным) и портом #FF (отключается джампером J2), чем и ценна Дельта 75ИС и её почти полностью открытая архитектура. Дельта 75ИС сразу имеет на плате место под 2 линейки RAM, и остаётся только заменить их на РУ5Г. Недостаток Дельты 75ИС - реализация портов клавиатуры и принтера на ПЛМ, поэтому плату-1 трудно изготовить новодельно.
(Из моей коллекции избранных игр на Дельте сейчас не работают только две: Square Heads и русская адаптация Twilight (Страна Теней). Обе они в ходе загрузки портят экран набором разноцветных квадратиков. Буду благодарен, если кто-нибудь подскажет причину этой несовместимости. Англоязычная Twilight работает.)
- Z80 буферизуется, т.к. его выходы будут перегружены при подключении периферии на ZX-bus. При буферизации нагрузочная способность сигналов адреса и управления возрастает с 2 до 24 мА. Шина данных разделяется по границе с ZX-bus.
- 3 спаренных джойстика Dendy+Механический с переключаемым режимом 5/8 бит и индикатором переключения. Также предусмотрено переключение между штатным и внешним портами #FE. Штатный порт включается по нажатию любой кнопки Sinclair-джойстиков, в остальное время включен внешний порт Z-контроллера. Для этой цели мною доработана прошивка ZC.
- Переключатель двух нагрузок до 100 мА по произвольному ТТЛ-сигналу с джампером J1 (светодиоды и т.п.). Например, у меня это переключение 7-сегментного индикатора на АТ-корпусе: индикация «48/128» переключается по сигналу Lock48 порта #7FFD. Потребление данного индикатора 77 мА.
- Ранее у меня много текста было посвящено борьбе с видеопомехами. Как я выше упомянул, моя разводка видеокаскада на плате-2 без предварительного макетирования оказалась ошибочной. Поэтому для владельцев ревизии 1.0 есть 3 пути доработать негодный видеовыход:
Путь 1 (так сделал я). Доработка на плате-1, а на плате-2 выходные делители и выходной AV-разъём.
Помучившись, на плате-1 регистр ИР37 посадить на место 155ЛП5 (DD51).
Отрезать между видеотранзисторами дорожку 3,5МГц на Z80.
С помощью МГТФ доработать по схеме согласования со SCART, выкинув подстроечные резисторы баз с их петляющими дорожками, прилегающими к дорожке адреса А0.
На плате-2 запаиваются выходные делители и разъём, а вместо ИР37 перемычки.
(Доработки МГТФ на нижней стороне можно увидеть на фото платы-1 внизу статьи. Разрезы не отмечены.)
Путь 2. Сборка транзисторной части с помощью МГТФ на макетном поле платы-2.
Всё, кроме транзисторов, впаять на штатные места. Транзисторы запаять на макетном поле под ИР37, для исключения перекрёстных импульсных помех соблюдая правило: транзисторы отодвинуты друг от друга и от входных сигналов на их базы. Для образца изучить размещение транзисторов на базовой плате - оно работает.
Путь 3. Вместо неудачных видеовыходов платы-1 и платы-2 использовать внешний видеоконвертер (scan doubler), подавая на него ТТЛ-сигналы RGBI (входы для ИР37) и получая в результате SCART, VGA или HDMI.
*
Буферизация
Почему-то среди спектрумистов существует мнение, что Z84С00/CMOS имеет бОльшую нагрузочную способность выходов, чем Z84000. Но даташиты этого не подтверждают – в обоих случаях IOL=2мА. А вот ток собственного потребления у CMOS действительно снижен в 10 раз - с 200 до 20 мА (на частоте 4МГц).
Подсчитаем нагрузку на шины.
ША: при условии задействования периферии BDI+GS+ZC суммарный IIL на большей части линий =1,8 мА. И это при условии, что используются только входы серии 1533.
Суммарная ёмкость входов превысила номинальную 100 пФ, а ведь ещё присутствует немалая ёмкость монтажа и междуплатных кабелей.
ШД: при тех же условиях суммарный IIL=2,2 мА, IIH=0,5 мА, суммарная ёмкость входов 208 пФ.
Разделив шину буфером по границе ZX-bus, получим две небуферизованные зоны с примерно IIL=1мА, IIH=0,24 мА, и 100 пФ каждая, что тоже неоптимально, но лучше, чем полное отсутствие буферизации.
В отличие от ША, на ШД много источников сигнала, из которых, согласно даташитам, музыкальный чип и ВГ93 имеют очень слабую нагрузочную способность IOH=0,1 мА. На втором месте чипы ROM c IOH=0,4 мА.
Плюсовая подтяжка 10К решает эту проблему при её нахождении в одной зоне с таким чипом (одновременно нагружая IOL). Но после разделения по ZX-bus ВГ93 окажется лишён подтяжки. Возможно, на плате-2 стоило бы предусмотреть резисторную сборку 10К за буфером, но пока что при необходимости можно напаять её к ножкам АП6.
АП6 имеет смысл установить в панельку на случай возможных экспериментов с обходом буфера.
Переключение направления АП6 происходит внешним сигналом /Dir, формируемым на стороне ZX-bus (плата-3) по "или" от всех /IOGE и /CRGE.
(Идея Nemo по замеру ёмкости шинных линий.)
*
Джойстики
Намного интереснее играть не в одиночку, а вдвоём или втроём - этому уделяется непростительно мало внимания разработчиками игр и железа. Из качественных игр вспомним Головобол, Ангелы, Rodland, Toobin!, Barbarian, Fist, Batty, Tetris2, Scate ball - не набралось и дюжины.
Массовый в прошлом механический джойстик (с возможностью электронного Autofire) Cheetah 125 (у нас в виде его советских клонов) имеет крайне грубую контактную систему из стальных пластин, точность его срабатывания неудовлетворительна, а при отломе пластиковой опоры заменить его напрямую нечем.
Полезная ссылка по замене контактной системы этого джойстика.
Хорошая идея использовать свежеизготовленные геймпады для Dendy, которые легкодоступны на маркет-плейсах. К описываемой плате они подключаются без всяких переделок (не требуется кропотливая работа с резкой и пайкой тоненьких дорожек и заменой кабеля и разъёма). Кнопки свежекупленных геймпадов из токопроводящей резины работали через раз, но в первый же день разработались и нажатие стало безупречным (наклейка фольги не требуется).
Геймпад Dendy выдаёт в последовательном коде 8 бит кнопок, обеспечивая 3 дополнительные кнопки: A, C, Start (и 2 кнопки Autofire A, Autofire B). Кнопка В соответствует привычной кнопке Огонь.
Я придумал 2 режима (5/8 бит) для дополнительных кнопок, выбираемых общим для всех 3 джойстиков переключателем (например, ключ Turbo на корпусе АТ). Плата позволяет выделить отдельный переключатель режима для Kempston (с джампером J3).
В режиме 5 бит дополнительные кнопки дублируют крестовину: А=Вниз, С=Вверх, Start=Вправо.
На данном геймпаде:
X = Autofire A (Turbo A)
Y = Autofire B (Turbo B) = Огонь
Z = C
В режиме 8 бит дополнительные кнопки становятся независимыми.
На Sinclair-джойстиках они задействуют клавишный ряд Q..P, но одновременно в него перемещается и кнопка В=Огонь, что оказалось неудачным упрощением схемы. Исправление этой ошибки описано в начале статьи.
На Kempston функция кнопки В=D4 в расширенном режиме не меняется, 3 дополнительных бита: С=D5, A=D6, Start=D7. В базовом режиме эти биты =0.
3 разъёма SubD9М для Dendy-джойстиков подключаются к общему для них разъёму CN14. Все сигналы на SubD9 запаять параллельно, за исключением сигналов Data1,2,3. Для АТ-корпуса я использовал планку COM-порта, вырезав в ней ещё 2 проёма. Такая планка чуть не вписывается в корпус, его приходится тоже подпиливать. Для идеального размещения разъёмов надо брать полностью пустую планку-заглушку, и вырезАть в ней 3 проёма с нуля.
Тактовую частоту для опроса джойстиков можно менять в широких переделах (например, от 0 до 100 кГц), но схема требует прямого и инверсного тактового сигнала. Я нашёл в Дельте готовый инвертор DD7 с сигналом 15,6 кГц для строчной развёртки.
(Если кто-то будет использовать плату-2 не в составе Дельты 75ИС, то необязательно иметь на плате-1 готовый инвертор - можно впаять ЛН1 на макетном поле. Свободных инверторов на плате-2 нет.
Я создавал свою схему на основе этой с Хабра. Она ошибочна как раз из-за отсутствия инвертированного тактового сигнала.)
U14 ИЕ5 делит тактовую частоту, формируя сигнал Latch через каждые 8 бит такта.
U24 ЛА2 формирует сигнал Joy по нажатию любой кнопки на любом Sinclair-джойстике. Этот сигнал выведен во внешнюю плату ZX-bus (плату-3) для схемы обхода внешнего контроллера клавиатуры с его собственным портом #FE.
*
Возможность одновременного использования механических джойстиков (равно как и электронных с параллельным выходным кодом и функцией Autofire) сохранена и дополнена функциональностью 8 бит. На плате 3 отдельных разъёма для параллельных джойстиков (CN13,17,18).
Из них для Kempston режим 8 бит неотключаемый, для Sinclair-1,2 присутствует то же переключение 5/8 бит, как для Dendy-джойстиков. Для этого в разъёмах Sinclair используются 2 общих провода: штатный RA12/11 для 5 базовых кнопок, и S1CS/S2CS для 3 дополнительных кнопок.
При этом через SubD9 трудно задействовать все 8 бит, поэтому надо либо переходить на трёхрядный SubD15 (как у VGA), либо довольствоваться 7 кнопками, либо изолировать и задействовать металлический корпус SubD9 в качестве 10 контакта.
А если потребуется вывести на такой параллельный джойстик питание +5V/GND (для функции Autofire или буферизации механических контактов), то поможет только переход на трёхрядный SubD15 с питанием от дополнительного 2-пинового разъёма, который можно впаять в ближайшем макетном поле.
*
Подключение к Дельте
Большинство сигналов на базовую плату Дельты (плату-1) от платы-2 подключается через похожий боковой разъём CN4 с двумя задействованными рядами AC*32. Расположенный рядом CN3 предназначен для подключения к ZX-bus, хотя эти 2 разъёма полностью взаимозаменяемы, их распайка дублируется.
При этом их распайка не совпадает с разъёмом Дельты, потому что это крайне усложняло разводку платы. К сожалению, при необходимости подключить к плате-2 имеющуюся периферию Дельты придётся паять новый кабель или переходник.
Все разъёмы платы-2 с шагом 2,54. При старании можно втиснуть сюда СНП59 с его шагом 2,5. Но нет смысла держаться за труднодоступные СНП59, поберегите их для оригинальной платы-1.
А здесь лучше применить легкодоступные разъёмы DIN41612 (я покупал в "Чип и Дип"). Но будьте осторожны с китайской маркировкой пинов, потому что она отсчитывается произвольно: например, у Connfly нумерация пинов углового папы и ответных мам совпадает с СНП59, а нумерация пинов прямого папы резко отличается.
Ещё больше разнообразие нумераций прямого разъёма в фирменной библиотеке EasyEDA. Поэтому следуйте нумерации пинов на шелкографии или на угловом папе СНП59. (Об этом моё примечание на принципиальной схеме.)
Сигналы, отсутствующие на штатном правом разъёме Дельты, подпаиваются непосредственно к плате Дельты проводами до двух задних разъёмов АС*16.
/IORQ' и /OutIORQ
- При выносе Z80 (для его буферизации) сигнал /OutIORQ с платы-2 подаётся на штатный пин /IORQ ХР1/С16 , а /IORQ' c платы-2 требуется дополнительно подать на плату-1 только при использовании GS на ZX-bus (доработка арбитра RAM).
- Если Z80 не выносится, то при использовании ZX-bus надо дорабатывать исходный контур /IORQ на плате-1. Через штатный пин ХР1/С16 /IORQ поступает на плату-2, а /OutIORQ возвращается с неё через новый пин ХР1/А16. На плате-1 надо отрезать от /IORQ порт #FE и порт принтера и подать в эти 2 точки внешний сигнал /OutIORQ. Если порт принтера не нужен, то на DD72/27 достаточно подать +5V.
Когда Z80 не выносится, также необходимо соединить между платами сигнал Reset (пин ХР1/С27).
You do not have the required permissions to view the files attached to this post.
Last edited by SKV on 11 Sep 2026 03:25, edited 6 times in total.
-
SKV
- Novelist
- Posts: 42
- Joined: 06 May 2022 08:39
Re: Доработки Дельты-С на 75 микросхемах
Резерв
Last edited by SKV on 08 Sep 2026 04:00, edited 1 time in total.
-
Shaos
- Admin
- Posts: 25284
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
Re: Доработки Дельты-С на 75 микросхемах
Dendy-джойстики это интересно
-
Black_Cat
- Doomed
- Posts: 637
- Joined: 23 Nov 2007 15:53
- Location: Saint Petersburg, Russia
Re: Доработки Дельты-С на 75 микросхемах
Вааще, сигнал DOS/ как-бы подаётся на все слоты NemoBus, т.е. он прям с BDI должен на шину подаваться, но если у тебя что-то своё с именными слотами, то на ZC этот сигнал как раз подавать не надо, КоЕ его туда сунул по по ошибке - просто подвесь резистором к +5. И BDI у тебя тож подключен неправильно: во-первых, он должен стоять в слоте с наименьшим приоритетом, и во-вторых, вааще не выдавать на шину IORQGE, а токо DOS/, который обязан включаться где надо в дешифрацию на мамке, как правило в дешифрацию KJoy, если он есть на мамке. И вааще, ещё куча УЖОС-УЖОС, что даж влезать в это не хочется, потому как переделывать абсолютно всё.
"Очень трудно найти чёрную кошку в тёмной комнате... особенно, если её там нет.", "Forever!". 
zx.clan.su - Soviet Union ZX Spectrum Community - форум посвящённый развитию Спека.
zx.clan.su - Soviet Union ZX Spectrum Community - форум посвящённый развитию Спека.
