И в чем преимущество над сбросом по INTE как в векторе? Или речь уже про z80?
Вид для печати
И в чем преимущество над сбросом по INTE как в векторе? Или речь уже про z80?
Нет, идет речь про ВМ80 на отдельной платке, которая вставляется вместо штатного ВМ80. Идет пока обсуждение, естественно приветствуются все предложения. Про сброс по INTE я не в курсе.
P.S. Подумалось, ведь INTE вроде зависит от команд DI и EI. То есть программист должен в подпрограмме обслуживания прерывания обязательно поставить DI, чтобы сбросить. Но это для правильных программистов :)
Аппаратный сброс по счетчику гарантирует сброс прерывания допустим спустя 32 такта и от программиста не зависит - в этом мне кажется есть большой плюс.
INTE (interrupt enabled) — выход, отражающий готовность процессора принять прерывание. Команды EI и DI, разрешающие и запрещающие прерывания, устанавливают соответственно высокий и низкий уровень на этом выводе. Низкий уровень устанавливается на этом выводе также после приёма запроса на прерывание.
На INTE я не уделял своего внимания, я смотрел вход INT и как там его начинает проц обрабатывать - SYNC, DBIN
Пока нацарапал эскиз переходной платки для обсуждения. Наверняка где то напутал. AY я подцептил к портам 14h и 15h как делал в ПК8000 и вроде такие порты в Векторе - https://disk.yandex.ru/i/7jM5yl7QQYMzGw
Пара моментов замеченных при поверхностном просмотре:
1. Нет источника сигнала RD/ (инвертированный DBIN?)
2. Нет подтяжки D0-D7 к 5В. В самом специалисте ее вроде тоже нет, хотя вариантов много, тут я не знаю.
Если правильно понял OUT и IN перестанут обращаться к памяти, это стоит отметить.
возвращаемся к теме "все что не чтение - то запись". с такой схемой вместо DBIN будет MEMRD - который в подтверждении прерывания выдан не будет, на что журнальная схема изобразит цикл записи и загадит память.
p.s. и кстати - не проще будет вместо набора логики просто ВК28 поставить? и места займет меньше, и умеет все что надо (и шину отключает когда надо и RST7 умеет выдавать штатно.)
хотя жрать будет больше, да.
Забыл конечно. Схему обновил.
Да, тут необходимо пояснить, что порты выведены из обращения к памяти. Поэтому программы, которые обращаются к портам (халявят) работать не будут.
AY предлагается нацепить на порты. В данном случае это 14h и 15h
Кроме того, с материнской платы (платы Специалиста) необходимо взять три провода.
Сигналы:
F1TTL - берется с выв. 12 микросхемы DD13(ИД4);
H6 - берется с выв. 6 микросхемы DD2(ИЕ7);
KSI/ - берется с выв. 8 микросхемы DD10(ЛА2)
Безусловно, если сбрасывать триггер прерывания по INTA или INTE, то нужно с платы будет взять только два сигнала. Но я бы все таки остановился на таком варианте, не зависящем от процессора, но как говорится не настаиваю.
Кстати, поглядел схему ПК8000, то там тоже на рассыпухе собран анализатор слова состояния процессора и прерывания от кадровой развертки сбрасываются по INTA.
Так что смотрим, вносим свои предложения.
- - - Добавлено - - -
Вполне возможен и такой вариант, никто не мешает изобразить два варианта.
- - - Добавлено - - -
В таком случае, мне видится выход из ситуации такой. В момент прерывания блокировать SYNC на выходной колодке процессора. То есть на триггер защелки записи в момент прерывания не придет SYNC.
Но в этом случае лучше будет тогда сбрасывать триггеры сигналом INTA.
Что касается портов вместо памяти, то с точки зрения программирования даже проще, хотя уже идёт вразрез с тем, что сделано. В конце концов можно будет автодетектилку сделать, я думаю. Но вот использование IN/OUT, конечно поставит крест на использование SP580 и софта он них же. Но с другой стороны мы же в соседней ветке проектируем новый супер-пупер клон, куда так или иначе решили закладывать возможность полноценно работать с портами.
А почему портов только два? Я так понимаю, что остались PORT_SEL и PORT_WR, а под нож пошёл PORT_RD? Прошу оставить и его тоже! У меня через него визуализация мелодии работает. Опять же если подключать принтере через AY он понадобится.
Что касается прерываний, то ты, пожалуйста, синхронизируйся с @Pyk и @RW9UAO, которые воплотили прерывания на Специалисте в эмуляторе и FPGA. Нужно чтобы они были одинаковые везде, включая поведение, время прихода, длительность и т.д. Это очень важный момент для будущего софта! Есть отдельная ветка. Может прерывания лучше продолжить там обсудить, чтобы было всё в одном месте?
А что за PORT_RD такой. Вроде к AY обращались всегда по двум портам?
По данной схеме
Порт 14h - запись адреса регистра AY
Порт 15h - запись и чтение данных регистров AY
Никакой третий порт не нужен.
- - - Добавлено - - -
А что SP580 юзает халяву (порты).
И вроде тут обсуждается платка с AY для текущих Специалистов, а для будущего клона на Z80 как бы она не нужна.