***Этот проект находится в стадии незавершенной работы. В настоящее время в нем есть ошибки, и не все функции были протестированы!
Текущие модули предназначены для установки на слегка модифицированную объединительную плату RC2014 Pro. В тексте ниже я объясню текущий статус проекта, обходные пути, необходимые для его запуска, и основные детали сборки. В связи с тем, что проект находится в стадии разработки, этот документ намеренно будет кратким.
В проекте используется контактный разъем/разъем для подключения модулей внутри подсистем (подсистема видео-ОЗУ и подсистема ввода-вывода-звука). Для этого требуется более длинный штыревой разъем, чем обычно.
Это слегка модифицированная объединительная плата RC2014 Pro. Модуль CPC использует линии D8–D15 как в подсистеме видео-ОЗУ, так и в подсистеме ввода-вывода-звука для локальных шин данных. Поэтому:
Вам нужно будет перерезать линии D8–D15 между этими секциями.
Это слегка модифицированный «Модуль ЦП Z80» RC2014. Модификация:
Резисторы на плате необходимо будет заменить на другие номиналы. 2,2 кОм должно работать нормально.
Эта плата содержит 512 КБ NORFLASH. Он включает в себя схему, позволяющую сжечь вспышку на месте (непроверено). Конфигурация:
Необходимо установить перемычку, соединяющую контакт 2 LK4 и контакт 2 LK5.
Для включения записи флэш-памяти установите ссылки ЛК1, ЛК2 и ЛК3. В противном случае оставьте открытым.
Мои примечания по записи во Flash (взято из файла схемы):
!!! В стандартной системе CPC невозможно отключить запись в память. Поэтому ЛЮБАЯ запись в память, которую мы выполняем в ПЗУ, когда WRITE_EN активна, также будет записывать в ОЗУ.
Однако, поскольку ПЗУ отображается в любой банк памяти, это добавляет определенную гибкость. Также обратите внимание, что чтение из ПЗУ отключено, а запись включена. Это означает, что мы можем читать из ОЗУ «под» ПЗУ, пока ПЗУ активно.
Моя рекомендуемая процедура программирования — запись в ПЗУ с использованием адресов видеоОЗУ, однако ПЗУ может выполнять запись с использованием адресов в банке 1 (&4000-&7fff), если этот диапазон памяти не содержит значимых данных. (Если данные, подлежащие записи, уже находятся в этом диапазоне адресов, то программист может просто прочитать данные (ОЗУ), а затем записать (ПЗУ) по тому же адресу. Однако необходимо соблюдать осторожность с командами, отправляемыми в ПЗУ, поскольку они все равно приведет к удалению данных ниже).
Считайте байт ОЗУ по адресу, который нужно запрограммировать.
Включите разрешение записи для ПЗУ
Запишите необходимые данные в ПЗУ.
Отключить разрешение записи для ПЗУ
Запишите исходные данные обратно в ПЗУ.
ПЗУ (NORFLASH) может содержать до 31 ПЗУ плюс ПЗУ встроенного ПО. При программировании чипа прошивка должна находиться в слоте 31 (начиная с адреса &7c000). BASIC (если установлен) должен быть установлен в слот 0 (адрес &00000). Слоты ПЗУ расположены каждые &4000 байт, т.е. &00000, &04000, &08000, &0C000, &10000 и т.д.
При записи ПЗУ с помощью программного обеспечения XGPro:
Используйте Select IC, чтобы выбрать используемую микросхему (SST39FS040).
Нажмите кнопку ЗАГРУЗИТЬ на панели инструментов.
Выберите файл для загрузки.
Формат файла: двоичный (для файлов .ROM)
В регион: по умолчанию
Режим загрузки: Нормальный
Начальный адрес файла: 0000
To Buffer Start Addr: Начальный адрес слота ПЗУ (&7C000 для прошивки, &00000 для BASIC).
Очистить буфер при загрузке файла: опция «Очистить буфер по умолчанию» перезапишет любые ранее загруженные данные! Используйте это для первого ПЗУ, загруженного в XGPro (который инициализирует все ПЗУ). Для всех остальных ПЗУ выберите «Отключить» (данные будут загружаться только в выбранный слот).
Нажмите «ОК» и убедитесь, что файлы загружены по правильному адресу и не были перезаписаны.
Нажмите PROG (панель инструментов)
Нажмите «Программа».
На этой плате размещена вентильная матрица и видеовыход.
В JP901 сигналы DISPEN и HSYNC меняются местами по сравнению с сигналами на эквивалентном разъеме на плате управления RAM. Лучше всего это исправить на плате RAM-Control (см. ниже).
Схема видеовыхода аналогична схеме CPC464, но каким-то образом я использовал номиналы компонентов от CPC6128, но без конденсаторов от '6128. Вероятно, это не имеет существенного значения.
В своем тестировании я использую тот же адаптер SCART-HDMI, который обычно использую для Amstrads, но здесь он показывает черно-белое изображение или вообще не показывает изображения. Похоже, это проблема между блоком питания, используемым кабелем, и адаптером. Это можно исправить, подав питание 5 В на кабель от модульной платы CPC.
На плате имеются места для вентильных матриц 40007 и 40010 (и 40008 также должен работать). Следы перекрываются для экономии места. У вас должна быть возможность включить розетки для обоих, разделив два ряда штифтов и удалив перемычку между ними, однако следы расположены слишком близко друг к другу, чтобы это можно было легко сделать.
Отверстия для гнезда DIN слишком малы.
Эта плата обеспечивает связь между шиной видеоданных и шиной данных ЦП, обрабатывает сигналы, чтобы сделать их пригодными для памяти SRAM, и содержит дополнительные компоненты, необходимые для памяти более 64 КБ (непроверено).
Схема управления /RAMOE неверна. Чтобы это исправить:
Разрежьте дорожку между контактами 1 и 13 U192.
Разрежьте дорожку между контактом 11 U192 и контактом 1 U193.
Подсоедините провод между контактом 1 U192 и контактом 9 U195.
Подсоедините провод между контактом 8 U195 и контактом 1 U193.
Как отмечено для видеоплаты, контакты DISPEN и HSYNC в разъемах между платами поменяны местами. Чтобы это исправить:
Разрежьте дорожку между контактом 2 J1 и контактом 2 J2.
Разрежьте дорожку между контактом 3 J1 и контактом 3 J2.
Подсоедините провод между контактом 2 J1 и контактом 3 J2.
Подсоедините провод между контактом 3 J1 и контактом 2 J2.
Чтобы использовать <= 64 КБ ОЗУ, установите ссылки LK5, LK6 и LK7. Если да, НЕ вставляйте IC118 и U194.
Чтобы использовать > 64 КБ ОЗУ, оставьте LK5, LK6, LK7 открытыми и установите IC118 и U194. IC118 — это стандарт Amstrad HAL/PAL.
Правильная схема для управления /RAMOE:
XCPU_AD-----| |-- /XCPU_AD-- AND---/ROMOE OR--- /RAMRD----
В текстовой форме: /ROMOE := XCPU_AD AND (/XCPU_AD OR /RAMRD)
XCPU_AD может быть получен от контакта 8 U195.
На этой плате размещены CRTC 6845, мультиплексоры адресов и SRAM объемом 512 КБ. Здесь нет никаких проблем, и никакая конфигурация не требуется.
При необходимости можно установить заголовки для CURSOR и LPEN. Вероятно, это не так.
На этой плате размещены PIO 8255 и ленточный интерфейс. Установлены пайки и перемычки, позволяющие настраивать адрес ввода-вывода:
Плата была спроектирована таким образом, что плату ввода-вывода можно было установить «над ней или перед ней», но реле слишком высокое, чтобы это позволить. Таким образом: я бы рекомендовал вам установить J902 на задней части платы (это разъем для звуковой платы).
На задней стороне платы найдите пайку чуть выше адресных контактов. На каждом звене вам необходимо припаять «верхнюю» адресную площадку (обозначенную от A7(sic) до A15) к центральной площадке. «Низкие» адресные площадки (A0..A7) НЕ должны быть подключены к центральным площадкам.
На передней панели платы найдите перемычки, расположенные между U1 и D302. Вам необходимо подключить «низкую» ссылку (к центральному контакту) для линии с маркировкой A3 и верхнюю ссылку (к центральному контакту) для остальных (A2, A4, A5, A6, A7).
Найдите связи, расположенные между C315 и J901. Настройте, какие сигналы направляются на гнезда, а какие — на объединительную плату. Рекомендуемая настройка:
Установите перемычки между INT (ernal) и средними контактами для TO, TI и /MO (выход ленты, вход ленты и двигатель).
Оставьте ссылку /EXP открытой.
J901 обеспечивает доступ к различным входным сигналам 8255. По умолчанию все эти линии имеют подтягивания и их можно игнорировать.
RG0, RG1, RG2 — настройки региона.
VHz — это настройка видеовыхода 50 Гц/60 Гц.
/EXP — сигнал /EXP.
PBSY — сигнал занятости принтера. Модуль CPC не имеет параллельного порта. При желании этот сигнал можно использовать для расширения.
J1, J2 и J3 — разъемы ввода-вывода ленты. J3 (двигатель) должен быть разъемом 2,5 мм, но площадь соответствует разъему 3,5 мм.
На этой плате находится звуковой генератор AY-3-8910 и соответствующие выходы, а также разъемы для клавиатуры и джойстика.
Как указано для платы ввода-вывода: межплатный разъем (J902) следует установить сверху этой платы, а не сзади, как показано на трафаретной печати.
Плата имеет возможность использовать встроенный генератор для тактового входа AY. В модульном модуле CPC: опустите X1 и установите перемычку на конце CLK2 JP3 (которая настраивает плату на использование тактового сигнала от матрицы вентилей, передаваемого через объединительную плату).
Перемычки над J103 (разъем аудиовыхода) позволяют отправлять различные аудиосигналы на различные контакты объединительной платы. В большинстве случаев их можно оставить открытыми. Обратите внимание, что некоторые настройки могут конфликтовать с сигналами ленты, маршрутизируемыми через объединительную плату на плате ввода-вывода.
Если установлен аудиоразъем, сигналы ЛЕВЫЙ и ПРАВЫЙ НЕ будут отправляться на объединительную плату (если это настроено — см. предыдущий пункт). Однако аудио MIX все равно будет отправлен (если это настроено).
CP2 — разъем клавиатуры. Здесь используется та же распиновка, что и в оригинальном Amstrad CPC464 (клавиатура на печатной плате).
J102 — разъем джойстика. Разъем здесь установлен слишком «внутри» и может закоротить плату в соседнем разъеме.
ХАЛ/ПАЛ:
Код оригинала: https://www.cpcwiki.eu/index.php/PAL16L8.
Замена WiP: https://github.com/Bread80/GreenHAL
Замена WiP: https://www.cpcwiki.eu/forum/index.php?msg=231084
Массив ворот:
Замена на основе WiP FPGA: https://github.com/codedchip/AMSGateArray
Образы ПЗУ: https://www.cpcwiki.eu/index.php/ROM_List
Лицензия: ЦЕРН-ОХЛ-П.
Авторские права © Майк Саттон, 2023
Сайт: https://bread80.com.
Социальные сети (Мастодонт): https://mstdn.social/@bread80
Дальше здесь нет ничего полезного. Но если вы зашли так далеко, вы, вероятно, все равно продолжите идти.
TX/RX=Звук (слева, справа) **Перемычка (дополнительно) USR1=ROMDIS USR2=/ROMEN USR3=VSYNC (видео на ввод-вывод) USR4=
/WAIT=ГОТОВО (уже есть!) CLOCK2=/CPU_ADDR (плата RAM; тактовая частота звука 1 МГц) RX2=Вход ленты **Перемычка (дополнительно) TX2=Выход ленты **Перемычка (дополнительно) USR5=RAMDIS MOVED USR6=/ RAMRD MOVED USR7=Двигатель ** перемычкой (опционально)
D8-D15=Видеошина
D8-D15=Шина ввода-вывода ???Управляющие сигналы???
Позиция = верхний ряд отверстий на высоте 45,72 мм над центром основных контактов разъема RC2014. Крайние левые контакты = средняя точка между A9 и A8. Контакт 1 справа 1 GND 2 HSYNC (вход) 3 DISPEN (вход) 4 GND 5 /RAS ( выход) 6 /CAS (выход) 7 /MWE (выход) 8 /CCLK (выход) 9 /244EN (выход) 10 Земля
Позиция = верхний ряд отверстий на высоте 43,18 мм над центром выдвинутых штифтов головки. Крайние левые штыри = средняя точка между штырями D2 и D3. Штырь 1 слева, все заземления в самом верхнем ряду. 1=GND 2=HSYNC (вход) 3=DISPEN (вход) 4=/CCLK (выход) 5=/XCPU_ADDR (выход) 6=/RAMCS (выход) 7=GND 8=/RAMOE (выход) 9=GND 10 =/RAMWE (выход) 11=RAMA14 (выход) 12=RAMA15 (выход) 13=RAMA16 (выход) 14=RAMA17 (выход) 15=ЗЕМЛЯ 16=RAMA18 (выход)
1=ЗЕМЛЯ 2=BC1 3=BDIR 4=PC0 5=PC1 6=PC2 7=PC3 8=ЗЕМЛЯ
Распиновка Амстрад/MX4
GND SOUND Y A15 Y Y Y A14 Y Y Y A13 Y A12 Y A11 Y Y A10 Y Y A9 Y Y A8 Y Y Y A7 Y Y A6 Y A5 Y A4 Y A3 Y A2 Y A1 Y A0 Y Y
D7 Y Y Y D6 Y Y Y D5 Y Y Y D4 Y Y Y D3 Y Y Y D2 Y Y Y D1 Y Y Y D0 Y Y Y (CRTC) VCC MREQ Y M1 Y Y RFSH IORQ Y Y Y Y RD Y Y Y Y WR Y Y Y Y HALT INT Y NMI BUSRQ BUSAK READY Y Y BRST RSET Y? Й? Й? Й? Й? ROMEN Y ROMDIS Y RAMRD Y Y RAMDIS CURSOR Y LPEN Y EXP Y Y GND CLK4 Y Y
Extra (Video-RAM): RD7..RD0 Y Y Y RAS Y Y CAS Y Y MWE Y Y 244EN Y Y XCPU_AD(?) Y Y RAMCS Y Y RAMOE Y Y RAMWE Y Y RAMA18..RAMA14 Y Y HSYNC Y Y DISPEN Y Y CCLK Y Y (24 строки)
Дополнительно (Видео-ОЗУ и звук ввода-вывода): CPU_ADDR(1 МГц) Y Y Y VSYNC Y Y Y (2 строки)
Дополнительный (IO-звук): PA7..PA0 Y Y MOTOR Y CASRD Y CASWR Y PRINTBUSY (Y) BC1 Y Y BDIR Y Y PC3..PC0 Y Y LEFT Y RIGHT Y (20 строк)
Диск: внутри требуется около 14 строк.
Видео/ОЗУ: 50+24+2=76 строк! общий. Меньше ненужного: всего 69 (70 плюс одна запасная!) Вход/звук: 50 + 20 + 2 = всего 72 линии. Меньше ненужного: всего 50 (включая пару запасных) Диск: 50 + 14 = всего 64 строки
Примечания: 76-контактный краевой разъем: ширина платы = 99,06 мм.
Платы: Секция MX4: Запасные части ПЗУ ЦП. Разъем Edge RC2014.
Видеосекция (вентильная матрица): Видеопамять Управление ОЗУ
Видеосекция (RP2040): Приемопередатчик видеосигналов RAM
Раздел диска: разъемы контроллера/буферы
Секция звука IO: PPI AY Tape Audio усилитель/микшер