Фото доработки. Разрез отмечен.
Вариант 2.
Также я приготовил вариант доработки для полного высвобождения IORQ от остановки Clock, т.е. остановку по условию А14+А15+фронт MREQ. Но этот вариант остался мною непроверен, т.к. требует разреза в недоступной дорожке под брюхом DD30 между пинами 13-2.
Можно обойтись без выпаивания DD30, откусив пин 13 над платой и подпаяв к нему новый проводок сверху.
2) Обратное вычитывание мода. Ошибки в «Руководстве по программированию GS» (за авторством Stinger).В ходе поиска описанной причины мне пришлось написать программу для загрузки тестового мода, обратного вычитывания из GS и побайтного сравнения.
Команда #30 Load Module в руководстве описана верно, но все команды чтения из памяти GS описаны с ошибками.
Команды #15 Get memory block и #17 Peek from address мне оживить не удалось - при чтении из одной и той ячейки ROM они выдают каждый раз новое значение, то есть читают вообще не ячейку.
В команде #1A Peek from (DE) address ошибку я устранил - она должна завершаться WD, а не WN.
В руководстве нет информации, по какому адресу в GS хранится единственный загружаемый мод. Это страница 2, адрес #8000.
Чтобы произвести обратное вычитывание мода из GS в Спектрум, необходимо:
- Командой #12 OUT to 0 port включить страницу 2. Изначально туда включена страница 0 (ROM).
Цикл:
- Командой #18 Load DE Pair передавать адрес ячейки, начиная с #8000.
- Исправленной командой #1A Peek from (DE) address читать значение ячейки.
3) Оригинальный GS: закоротки на печатном разъёме, отсутствие дорожки WR на расширитель, отсутствие подтяжки Reset, незадействованные контакты питания.- При втыкании платы в ZX-Bus главный Z80 отказался запускаться, выдавая чёрный квадрат.
Причина оказалась в наличии закороток из волосков металлизации на кромке печатного разъёма, в том числе между незадействованным в GS пином +5В и битом адреса. Повезло, что не на пине +12В.
- Второй недочёт оригинальной платы - отсутствие дорожки WR на пин 34 расширителя от DD15, ножка 27.
- GS изначально позиционировался разработчиком как устройство с раздельным сбросом: «загрузить свой любимый модуль, сбросить Спектрум, загрузить
ассемблер и творить под любимую музыку.» Однако в схеме отсутствует необходимый для раздельного сброса GS резистор 10К, подтягивающий Reset к +5V, работающий в паре с конденсатором С21А. Если для подтяжки шины данных применяется резисторная сборка с 10 ножками, то можно использовать её свободный резистор.
- на печатном разъёме GS задействован лишь один контакт +5V, также удивляет почти полное отсутствие блокировочных конденсаторов. Полезно подпаять оставшиеся два контакта +5V и один контакт GND. С нижней стороны GS это делается очень просто.
4) Доработка дешифрации и исключение диодной логики.Решение
разработал Black Cat.
- В ZX-Bus с несколькими слотами и арбитром IORQ на ЛЛ1 за счёт задержек распространения возникает сдвиг между IORQ и WR. Этот сдвиг DD6 ошибочно воспринимает как команду на чтение из GS. Поэтому необходимо ввести сюда RD.
- IORQGE должен формироваться комбинацией Адрес + Нет M1, до прихода IORQ.
Выборка дешифратора = этот же сигнал + IORQ.
При наличии арбитра на ЛЛ1 третье состояние IORQGE не требуется. Поэтому лишний элемент в виде транзистора или ЛП8 можно не впаивать.
- Осциллограмма сигнала RAM1 на входе и выходе диодного ИЛИ показывает, что диодная логика не имеет права на жизнь. Она должна быть заменена на ЛА2 и элементы ЛИ1.
Сверху вниз:
3. RAM1=4,6V на входе в диод
1. В1Х=1,4V на выходе из диода