Цитата:
Сообщение от
_Ratibor_
А зачем тогда /IORQ, /RD ? Причем они также присутствуют в схеме zxt.
Как и для любого другого порта чтение происходит когда /IORQ и /RD равны 0.
Цитата:
Как работает "фирменный" порт ФФ я знаю. А оно нам надо в полной мере ?
Давайте тупо 1 вывод ир23 посадим на землю или тупо на ир22 резисторов одних налепим, нафига лишние провода.
Да для того чтобы во время этих сигналов шина данных не была замусорена, т.к. там могут быть более полезные данные.
Цель ФФ(глюк возведенный в ранг фичи) - это атрибуты, а во время инта никаких атрибутов там впринципе не должно быть(см. положение инта в кадре).
Вот и я о том же, когда приходит инт, никаких атрибутов на шине данных уже не может быть в принципе.
А во время INT с шины данных будет считываться #FF, так как INT происходит во время BORDER-а, поэтому порт #FF не открывается.
Это уже обсуждалось с этого поста и ниже (http://zx.pk.ru/showpost.php?p=305833&postcount=343)
Цитата:
И получается еще как привязано к инту. Вернее инт должен быть правильным и в правильном месте.
Еще раз прочитайте что сами и написали и вдумайтесь:
Сигналами BORDER и /WR_ATTR мы гарантируем что в регистр(ир23) попадут ТОЛЬКО атрибуты, а сигналами /IORQ, /RD, /INT мы гарантируем что на шине данных во время появления хоть одного из этих сигналов шина данных не будет замусорена, т.к. она нужна для более важных дел.
По приведенной вами схеме регистр выдаст данные только тогда, когда все три сигнала равны 0, а такой комбинации, наверно, не бывает. Да и если ее довести до рабочего состояния - зачем нагружать шину данных лишними резисторами, если можно открывать порт #FF только в момент чтения из незанятого порта.
Кстати сейчас в Ленинграде при чтении из порта #FF читается состояние кемпстон джойстика. Поэтому та схема не будет работать без доработок.
Цитата:
А вот зачем на схеме zst A0 и A5 ?
A0 - это адрес клавиатуры, A5 - это адрес кемпстон-джойстика. Если один из этих адресов равен 0, то открываются мультиплексоры клавиатуры и кемпстона. Если оба равны 1, то открывается порт #FF в моменты, когда нет BORDER-а. Сигнал BORDER перед использованием надо задержать на время отображения одного байта, так как только через это время в мультиплексоры КП13 и регистр порта #FF запишутся действительные данные атрибутов. Это делается с помощью триггера ТМ2.
Цитата:
P.S. zst я кстати понял почему у меня на ленинграде-2, а теперь и на ленинграде-1 во время работы тест-пзу, что Вы мне зашивали, после каждого удачно пройденного теста небыло мельтешения на бордюре.
Если инт не правильный то бордюр мельтишит(как бы черно белая рябь бежит), а если инт правильный то бордюр замирает.
Рисунок на BORDER-е может быть разным в одной и той же программе также и при разном количестве тактов в строке или разном количестве строк в кадре. А в Ленинградах нельзя быть уверенным, что у них одинаковая развертка на разных компьютерах. Для проверки этого, надеюсь, напишут программу для тестирования развертки (http://www.zx.pk.ru/showpost.php?p=415722&postcount=59).
Если параметры неправильные, экран будет отличаться или мелькать.