Я так же делал и работает, записывал AA и FF. Помимо порта может и дешифратор адресов ИД7 барахлить.
Вид для печати
Я так же делал и работает, записывал AA и FF. Помимо порта может и дешифратор адресов ИД7 барахлить.
vadim-enot, значит у меня порт битый. :( Как уже писал, он точно такой же, как и клавиатурный, покупалось две штуки, оба новые. Буду выпаивать и ставить панель... Ещё бы разобраться, почему комп виснет даже в Мониторе...
А есть возможность проверить прохождение сигналов WR,RD,CS во время записи в порт?
Проверь правильность прошивки монитора - OF800,FFFF BK.
Вот здесь - http://zx.pk.ru/showpost.php?p=662850&postcount=357
В результате контрольная сумма должна быть 11D5.
---------- Post added at 18:21 ---------- Previous post was at 18:17 ----------
Только не пугайся. Вывод на магнитофон сопровождается гашением экрана.
Поверил соответствие ног 5, 36, 34-27, 8, 9, 35 с аналогичными ногами клавиатурной D20 - всё совпадает, сигналы доходят. 6-ая нога D14 (/CS) нормально звонится с 13-ой ногой D11 (ИД7). Импульсы на 6-ой ноге тоже присутствуют.
Выяснил ещё вот такую фигню. Как только записываю 80h в A003, то у меня сразу появляются "1" на PC1, PC5 и PC7, т.е. в трёх разрядах порта С появляются единички, хотя этого быть не должно. Снимаются они только РЕЗЕТом.
Так я уже зашил два разных монитора (две прошивки). Одна - классическая на 32КБ, вторая - с патчем для РОМ-ДИСКа. Шил Виллемом, проверка прошла.
---------- Post added at 18:50 ---------- Previous post was at 18:48 ----------
Про это я в курсе. Дело точно не в прошивке Монитора. Тут что-то другое. Что-то связано с работой памяти... Но память я тестировал. И средствами Молнитора, и ТЕСТ-ПЗУ - ошибок нет.
Vladimir_S, у меня мерцает.
Да я чето не то написал, тебе ведь другую ВВ55 надо проверить.
Эта директива не совсем корректно работает с портом.
Когда бы задаешь режим вывода, записав в регистр управления код 80н
Ты тут же должен записать в порты А,В,С нужный байт (FF), но директива М в мониторе сначала читает состояние порта(А,В,С) и выводит его на экран и только потом ты в порт пишешь свой байт.
Так что не ломай свой компик. Разбирайся с монтажом, возможны ляпсусы.
Да, но первое, что она делает - читает содержимое порта и выводит его на экран и только потом ты вводишь новое значение, которое по ВК записывается в порт.
Вот и выходит, что сначала ты записал РУС по МА003 ВК команду вывод (80н). А по второй команде МА000 ВК...Директива М читает!!! состояние порта А, выводит содержимое на экран, ты видишь, строку состояния ячейки памяти А000. (команда для порта "вывод", а происходит чтение из регистра А, а не запись в А)...И только потом ты туда пишешь байт FF.
Нет, ну если по заданию "записать" происходит "читать" и это считается корректно, то вопрос отпал сам собой.
Только в той тест программке, что ты набил в посте после команды "Запись" ты порты не читаешь, а записываешь.
Кстати, в таком некорректном варианте должен читаться регистр порта, если он ранее был установлен, а не ШД.
Корректировать ячейки памяти, а не порты контроллеров. Контроллеры несколько сложней организованы, нежели просто ячейки памяти. Потому я и указал на некорректность работы директивы М с контроллером ВВ55. Может из-за этого у топикстартера косяки вылезают. Вот попробует твою мини тест программку записи в порты и тогда станет всё на свое место.
К сожалению, всё тоже самое, что и по М - уровни не меняются, только до первого РЕЗЕТа выставляются три бита в порту С. ВВ55 под замену. :(
Попробовал. На самом деле, не вижу причин к спору по данному вопросу. Порты в РК адресуются как ячейки памяти, вот в них и пишем-читаем. Директива М пишет-читает память.Цитата:
Может из-за этого у топикстартера косяки вылезают. Вот попробует твою мини тест программку записи в порты и тогда станет всё на свое место.
---------- Post added at 21:18 ---------- Previous post was at 21:14 ----------
p.s. На самом деле, всегда недолюбливал 580-ые вот этого завода (как сейчас у меня):
http://gzip.ru/images1/k580vv55.jpg
Самыми безпроблемными были БИСы вот этого завода:
http://t2.gstatic.com/images?q=tbn:A...O7nUblrLqm_3A4
Потому что с адреса F879 идет 32 02 А0. Я еще в году 88 или 89 сделал программатор на РКшке и обнаружил, что в последнюю программируемую ячейку он иногда какой то мусор зашивает. Дня два убил пока нашел эти дебильные три байта. Теперь в мониторе всегда их меняю на нули.
Так программа в кодах делает тоже самое.
Нет, эта команда выполняется только при инициализации монитора.Причем если бы авторы хотели как то использовать эту команду, то вначале активизировали бы РУС.
А так получается полная бессмыслица.
---------- Post added at 18:08 ---------- Previous post was at 16:54 ----------
Хотя может быть и не бессмыслица. Посмотрел ассм монитора, а там получается что в #8002 пишется #00, видимо погасить светодиод РУС/ЛАТ после сброса, а потом в #A002 пишется #FF.
Поменял сегодня ВВ55А и всё сразу заработало.
http://photo.qip.ru/photo/softfelix/.../106365691.jpg
РОМ-ДИСК, в том числе.
Пришлось резать и МГТФ-ить для работы с 27С256. Порез между 27-ой и 28-ой ногами.
http://photo.qip.ru/photo/softfelix/.../106365705.jpg
Порез около 1-ой ноги 27С256.
http://photo.qip.ru/photo/softfelix/.../106365697.jpg
Порез на разъём.
http://photo.qip.ru/photo/softfelix/.../106365702.jpg
Подтверждаю. Какого-то лешего пишет FF в порт С.
А зависания остались. Такое впечатление, что процессор в какой-то момент не может перейти по нужному адресу. Зависание можно спрогнозировать на 100%.
К примеру, директива Х. Что делается после просмотре всех регистров? После последнего AF -> ещё один ENTER -> подсказка --> -> на следующем ENTER'е очистка экрана и надпись РК с подсказкой. Так вот зависает на очистке экрана. У кого-нить есть дизассемблер Монитора, что бы глянуть на исполняемый код в этом месте?
SoftFelix, Дело в том, что в некоторых случаях после нажатия ВК, монитор начинает искать какую директиву ты хотел выполнить. И не найдя переходит по адресу #F000. Монитор же у тебя штатный, рассчитаный на ПЗУ 2Кб. Попробуй поменять #F0 на #F8 по адресу #F8DB.
Попробуй погонять разные игры, бейсик, чтоб убедиться, что проц работает нормально. Может в нём дело.
Kakos_nonos, BASIC гружу из РОМ-ДИСКА - работает нормально.
10 PRINT "HELLO, WORD!!!"
RUN
HELLO, WORD!!!
---------- Post added at 22:28 ---------- Previous post was at 22:25 ----------
Игры пока не могу загрузить. Нашёл только один образ РОМ-ДИСКа на 32КБ (27С256). Там только несколько системных программ. Все остальные образы на 64КБ. Если подскажешь, где есть образы с игрушками на 32КБ - скачаю, прошью и проверю.
---------- Post added at 22:44 ---------- Previous post was at 22:28 ----------
Вот ещё что выяснил. Если всю память пользователя (0000 - 75FF) заполнить #DD, то зависания пропадают. Мистика какая-то...
SoftFelix, Попробуй ввести любую букву или цифру (какой директивы нет) и нажми ВК.
Так работает же всё! И память пишет-читает, и процессор пашет... Выше писал - глюк зависит от содержимого памяти. Вот тут непонятно. Так и хочется во время зависона нажать MAGIC и вывалится в Теневик (ZX SPECTRUM) и посмотреть в каком месте висим... :) Кстати, выяснил вот ещё что. Сам комп во время этих зависаний работает, просто переходит куда-то не туда. К примеру, загрузил я из РОМ-ДИСКа какой-то ED/ASSM. На экране:
ED.*МИКРОН*
*
При нажатии любой клавиши - писк из спикера. По РЕЗЕТу вышли в МОНИТОР, выбрали директиву Х, прощёлкали её до конца. И вот в тот момент, когда должны зависнуть при очередном нажатии ENTER, из спикера раздаётся тот самый писк от этого МИКРОНа. Т.е. комп работает, но именно МОНИТОР глючит.
---------- Post added at 23:57 ---------- Previous post was at 23:55 ----------
p.s. По-поводу заменить процессор и память. Не в панельках они, впаяны. Память ещё одна есть точно такая же, а вот процессора нет. Разобраться бы надо, прежде, чем плату курочить.