Elite доходит до этого места и больше не реагирует на клавиатуру. Zexall запускаю.
Вид для печати
Elite доходит до этого места и больше не реагирует на клавиатуру. Zexall запускаю.
Разряды 7 и 5 взведены постоянно, а шестой соответствует сигналу магнитофона, но за полярность я не отвечаю. Так что может читаться и как ноль. Я в него копирую старший разряд десятиразрядного аналого - цифрового преобразователя микропроцессора, который подключен к шестому порту. Так что если сигнал на этой ноге ниже 2,5 В - там ноль, в противном случае единица.
Все команды IN опрашивают клавиатуру в том случае, если младший разряд адреса порта равен нулю. Иначе возвращается #FF.
а должен быть D5 в нуле. Кроме того D6 на ZX48 и ZX128 (не +2, +3) - это функция того, что записано в порт бордюра #FE. На ZX48 начиная с Issue3, если в D4=1 #FE, то из D6 читается единица всегда, вместо сигнала магнитофона. На этом построена защита некоторых программ, которые вешаются, если не так.
не так, для TTL логики единица - это от 2V и выше, а 0 - от 0,8V и ниже.
---------- Post added at 13:29 ---------- Previous post was at 13:28 ----------
я ж написал:
---------- Post added at 13:40 ---------- Previous post was at 13:29 ----------
Кроме того, D3 #FE управляет чувствительностью читалки магнитофона:
D3=0 - низкая чувствительность
D3=1 - высокая чувствительность
Кроме того оба эти разряда образуют нелинейный 2х битный ЦАП, и сигнал на спикере насамделе имеет 3 уровня амплитуды, но цена разряда D3 очень маленькая, поэтому это на слух без нелинейного усилителя не различить. Но на отечественных клонах это уже более заметно, а в Фениксе цена разряда D3=0,5 D4. Советую сделать так же если есть возможность. На совместимости это не скажется.
Кроме того, если есть возможность - желательно вывести эти разряды на отдельные ноги, как в большинстве рассыпушных отечественных клонов, чтоб можно было получать биперное стерео.
Спасибо за консультацию !
Про ТТЛ я пока ещё не забыл. Просто у меня сделано так:
На ножке микросхемы, которая отведена магнитофону, у меня пол питания (2,5 В). К этой ножке подводится через разделителбную ёмкость сигнал магнитофона (уровень линейного выхода). внутри AVR к этому выводу подключен 10-разрядный АЦП таким образом, что 5 В соответствует цифра 1023. Таким образом, копируя старший разряд АЦП в шестой разряд порта, я получаю ноль для низкого уровня сигнала магнитофона (отрицательная полуволна), а единицу для высокого (положительная полуволна).
терь понятно, это вход АЦП. Вот кстати D3 как раз смещает среднюю точку в АЦП, правда я не слышал, чтоб это где-то использовалось, а можно было-бы сделать простейший программный 2х битный АЦП последовательного приближения :)
Я надеюсь, правильно: уж много я на это сил и времени потратил. За это у меня отвечает клавиатурный контроллер.
Но подробного теста не делал. Правда тут уменя ещё одна проблемка всплыта: дочка залила тут клаву компотом, ту, на которой я отрабатывался. Она работала как часы и не сбоила ...
А у других клав что-то сбои частенько бывают: при отпускании клавиши может не заметить префикс f0 и думает, что клавиша ещё нажата - включается автоповтор. Прийдётся ещё потрудиться ...