Это как квази устойчивое. Я бы сказал квази не устойчивое:) Ладно обчем говорить.
Ладно ладно, все молчу. Предположу что у вас процессор бежит от 0 и …. Вот там и ищете.
Вид для печати
Это как квази устойчивое. Я бы сказал квази не устойчивое:) Ладно обчем говорить.
Ладно ладно, все молчу. Предположу что у вас процессор бежит от 0 и …. Вот там и ищете.
Осцил еще может схватить поток мыслей цпу, если они похожи (об старом ослике говорим).
Без вариантов. Рандом фанаты тебе не помогут. Есть нечего. Все это только домыслы (попкорн).
Появилось немного времени поиграться с компом. В смысле, прорисовать некоторые узлы. Обнаружил, что в одной ИР23 все выхода закорочены на входы. В чем великий смысл такого схемотехнического решения?
Пока прорисовал примерно половину. Я микросхемы не выпаивал, поэтому процесс прозвонки длительный и чреват ошибками. Пока все по листочкам и от руки... Как соберется все и проверится - перерисую в электронном виде. Там много интересного, вроде адреса, приходящего на шину данных ВГ75 или обработки сигнала BUSACK... Очень все необычно и запутано... Простые методы диагностики тут совершенно не годятся. Через неделю-две должен прийти лог. анализатор - процесс должен пойти веселее ))
А это уже зависит от того, кто ему LE (STB) дает, а кто OE (не ВТ57 ли случаем ;) ). В общем случае это получается регистр временного хранения чего либо. По шине получили, полежало, вернули где взяли, т.е. на ту же шину.
Вот на это не похоже?
http://storage3.static.itmages.com/i...58db832321.jpg
Так! Вроде бы всплыл еще один АРГО на Украине.
Есть какие-то книженции, сам комп с БП, и ПО (причем вроде бы как в свое время переписанный не на компактную кассету, а на бобину).
Сейчас с владельцем прорабатываем этот вариант.
А ведь и правда. Я так привык, что эти регистры используют для хранения-передачи, что просто хранение выглядит необычно )) OE через инвертор действительно идёт на ПДП.Цитата:
а кто OE (не ВТ57 ли случаем)
То, что ещё один комп всплыл - это очень хорошо. Я в сохранности всех РЕ не уверен, а наличие ещё одного удваивает шансы, если, конечно они будут считаны. Пока компом заниматься некогда, но обнаружил вероятную неисправность ИР26 и, возможно, связанные с ней РЕ. Логический анализатор ещё не пришёл, но так как в ПЗУ комп лазит - можно проверять кусками кода из оригинального ПЗУ, записанными на флешку.
b2m, и это логично, т.к. в одном цикле выставляется 1 адрес. А для пересылки нужно 2 цикла, с разными адресами. Поэтому требуется ячейка временного хранения данных, между циклом чтения и циклом записи.
Ну вот и как такой регистр без анализатора проверять... Тем более, что он висит на ШД. Но то такое... Пока меня больше ИР26 интересует. Он ощутимо тёплый - даже 555ир22 в динамике греется меньше. Остальные 1533 вообще холодные. Он должен греться до 40+ или для него это ненормально? Кроме того при неактивной выборке там на выходе хорошие 5.08в (напряжение питания), которые посадить до порога 0.8 можно только 75омным резистором... Возможно, конечно, что это "течет" по входам РЕ, но это маловероятно.
Пришел, наконец-то анализатор... Ну что я могу сказать - программа из ПЗУ выполняется, на ШД начинается все правильно. Прилагаю первый скриншот и дизасм ПЗУ. Точнее, не дизасм, так как я не разбирал - где коды, где данные. Скорее "болванка".
Да, ИР26, скорее всего, живая - она действительно так должна греться. А большой ток определяется резисторами подпорки ~300Ом
UPD: без ПЗУ все сигналы на Z80 выглядят аналогично таким же на спектруме "Ленинград-1".
UPD2: На второй картинке "зацикленная" часть программы. Ее хорошо видно осциллографом - период постоянный. До этого программа проходит примерно через 0.1ms после старта.
UPD3: Первые три команды точно выполняются. Jmp, LD и OUT Анализирую состояние шины с помощью анализатора параллельного протокола. Зацикливается все, похоже, после
f8e7 70 ld (hl),b
f8e8 23 inc hl
f8e9 bc cp h
f8ea 20fb jr nz,0f8e7h
Оно и понятно - память-то "не включилась"...
ret в конце этой подпрограммы возвращает х.з. куда, но только не в точку вызова.
До этой п/п коды исполняются верно но, вероятно, не все OUT выполняют то, что задумано, так как CAS на памяти так и не появляется.
Имеет смысл выкладывать файл данных для LA1010? он в архиве где-то 1Мб. Я еще добавил IORQ, чтобы в OUTах не запутаться.
А вообще кто-то разбирал ПЗУ? Есть мысль сделать переходник для флешки (хоть того же винбонда) и шаг за шагом проверить инициализацию. Но нужно разобраться во всех этих OUTах. Может кто-нить внести комментарии в файл, что я приложил выше? Или такой файл уже есть? Как ни странно, но анализатор мне особо не помог. То, что я выяснил, я, собственно, и раньше знал, а для пошаговой проверки с ПЗУ достаточно и одноканального осциллографа... Ну пусть будет железяка, может пригодится ))
UPD: Вот и первая польза от анализатора - доказан факт того, что в регистр ИР26 ничего даже не пытается записываться. А без этого CAS на ОЗУ не появится (он идет через сложную цепочку триггер - дешифратор, которую я еще до конца не распутал). Вопрос - имеет ли место в выделенном фрагменте инициализация ИР26? По логике она должна иметь место, так как загружается регистр стека и идет заполнение памяти...Код:f800 c3d4fb jp 0fbd4h // С этого все начинается
....
fbd4 3e61 ld a,61h // Инициализация... куча разных Out ))
fbd6 d3b9 out (0b9h),a
fbd8 d3a9 out (0a9h),a
fbda 3e72 ld a,72h
fbdc d3a6 out (0a6h),a
fbde 3eb2 ld a,0b2h
fbe0 d3a6 out (0a6h),a
fbe2 3eff ld a,0ffh
fbe4 d3a2 out (0a2h),a
fbe6 3e04 ld a,04h
fbe8 d3a2 out (0a2h),a
fbea 3eff ld a,0ffh
fbec d3a4 out (0a4h),a
fbee 3e01 ld a,01h
fbf0 d3a4 out (0a4h),a
fbf2 af xor a
fbf3 d3c4 out (0c4h),a
fbf5 3e4f ld a,4fh
fbf7 d3c0 out (0c0h),a
fbf9 3ed8 ld a,0d8h
fbfb d3c0 out (0c0h),a
fbfd 3e99 ld a,99h
fbff d3c0 out (0c0h),a
fc01 3ede ld a,0deh
fc03 d3c0 out (0c0h),a
fc05 3ee0 ld a,0e0h
fc07 d3c4 out (0c4h),a
fc09 3e80 ld a,80h
fc0b d3e8 out (0e8h),a
fc0d 3eb0 ld a,0b0h
fc0f d3e4 out (0e4h),a
fc11 3ef7 ld a,0f7h
fc13 d3e4 out (0e4h),a
fc15 3ecf ld a,0cfh
fc17 d3e5 out (0e5h),a
fc19 3e87 ld a,87h
fc1b d3e5 out (0e5h),a
fc1d 3ec3 ld a,0c3h
fc1f 320000 ld (0000h),a
fc22 323800 ld (0038h),a
fc25 2133fd ld hl,0fd33h
fc28 220100 ld (0001h),hl
fc2b 223900 ld (0039h),hl
fc2e 3192f7 ld sp,0f792h
fc31 af xor a
fc32 2193f7 ld hl,0f793h
fc35 47 ld b,a
fc36 cde7f8 call 0f8e7h
....
f8e7 70 ld (hl),b // Этот цикл отрабатывает
f8e8 23 inc hl
f8e9 bc cp h
f8ea 20fb jr nz,0f8e7h
f8ec eb ex de,hl
f8ed c9 ret
...
fc39 217ef7 ld hl,0f77eh // Сюда мы должны были бы вернуться... Или нет?
fc3c 229bf7 ld (0f79bh),hl
fc3f 11b0f7 ld de,0f7b0h
fc42 2104ff ld hl,0ff04h
fc45 010600 ld bc,0006h
fc48 edb0 ldir
fc4a eb ex de,hl
fc4b cde4f8 call 0f8e4h
UPD2: Дешифратор портов ввода вывода на РЕ3 включает определенные ноги на все OUT в листинге, кроме первых двух. Нога, активирующая запись в ИР26 при инициализации не срабатывает. Может быть такое, что порт b9h (a9h) - это и есть регистр записи конфигурации ИР26? Либо все-таки ее здесь и не должно происходить?
Итак спрашивали - отвечаем. Да, первые две команды должны писать в регистр конфигурации и да, они не пишут, ибо потекли РЕ-шки. Дешифрация по устройствам идет фактически по трем линиям - A0, A5, A6 + "модифицированный" /IORQ. По A3 и A4 уточняется, в какой регистр идет запись и сам факт записи в регистр параллельно открывает регистр на чтение, если активен шестой бит ШД. Еще потекла РЕшка в синхрогенераторе (какая из двух - непонятно ибо они объединены по выходам монтажным ИЛИ и логика там непростая). Поясняющие схемы приложу чуть позднее. Нужно их в третий раз перерисовать )) Нужны прошивки... Эти РЕ сыпятся прямо на ходу - в процессе экспериментов приходится часто включать - выключать и на ходу "отвалился" еще один вывод синхрогенератора.
Для уточнения предмета обсуждения выкладываю пару черновиков. Пояснения СAS1, RAS1 - стробы ОЗУ знакогенератора, CAS2, RAS2 - рабочего на момент запуска ОЗУ, подтяжки не все показаны. В рабочем ОЗУ вход закорочен на выход и все висит на ШД, ОЗУ знакогенератора подцепляется к шине через регистры.
Фрагмент регистра конфигурации
[IMG]http://www.picshare.ru/uploads/17121...j5ac_thumb.jpg[/IMG]
Синхрогенератор
[IMG]http://www.picshare.ru/uploads/17121...a8Cu_thumb.jpg[/IMG]
Нумерация микросхем справа-налево, сверху-вниз через дробь.
Предположительно неисправную ROM обозвал IOsel - 4 сигнал. В синхрогенераторе бардак на сигнале 6 (2КП12 мультиплексоров ОЗУ знакогенератора)
Прилеплю фото платы и сюда
http://www.picshare.ru/uploads/17103...B140_thumb.jpg
Может имеет смысл сдуть эту РЕ3 (D16), снять прошивку и выяснить, почему не срабатывает 4 сигнал? Там есть еще два сигнала, на входе, которые теоретически его могут блокировать но они, по идее, активируются только после программирования регистра конфигурации т.е. в исходном при включении состоянии блокировать запись не должны. Жаль только, что вероятность "добить" РЕшку при выпайке довольно высокая...
По синхрогенератору глюк следующий - импульсы формируются пачками с промежутками. Так вот в промежутках наблюдается редкое срабатывание, не имеющее никакой системы. Все это на сигнале 6.
Да, забыл уточнить - на верхней ПЗУ D12 синхрогенератора есть следы ремонта. Другой производитель и оторвана контактная площадка внутри. Но ремонт был, скорее всего, в условиях завода, так как наклейка выполнена в одном стиле с остальными.
Не получится иголкой от шприца(кончик затупить) отсоединить входы и /CS(15) ПЗУек от контактных площадок, либо только /CS и выходы счетчика ИЕ17? Ну либо дорожки порезать. После этого можно с помощью проводков в статике посмотреть содержание каждой ячейки каждой из ПЗУ. За одно проверить перед этим обязательно что при обеих отключенных РЕ3 их выходы находятся в высоком импедансе(никто другой своим входом не "садит").
ИЕ17 отсоединить можно. Но 13, 14 и CS придется "поднимать". Уж лучше тогда их осторожненько сдуть и снять программатором через переходник... Кстати, а в базе TL866 что-нить похожее с OK есть? Еще снял диаграммы анализатором:
https://cloud.mail.ru/public/ETAx/v1rZNXAmT
Программа для просмотра доступна на http://www.qdkingst.com/download/vis
argo_boot - Шина данных и IORQ при загрузке. По IORQ видно OUT'ы из листинга выше.
D16, D16 I2low - ПЗУ, дешифратор ввода-вывода (второй файл при нуле на I2)
Sync_D11, Sync_D12 - ПЗУ синхрогенератора
ID4Input - вход дешифратора.
Немного по раскладке адресов D16:
На пачку D4 реагирует CS ВТ57
На D5 - ВГ75
На D7 и D0 - ВИ53
а ВВ51 не реагирует ни на один OUT при инициализации
как и регистр конфигурации
UPD: Поправил ссылку. Файл архива оказался битый
А что на входах РЕ3 синхрогенератора? Эти диаграммы есть?
Есть. Sync_D11, Sync_D12 - ПЗУ синхрогенератора I - входы, D - выходы.
UPD: Но на данный момент все-же интереснее, почему ничего не пишется в регистр конфигурации. Глючащие сигналы синхрогенератора, вроде, не должны влиять на основное ОЗУ. Пробовал принудительно при старте кратковременно подтягивать сигнал 4 D16 (IOSEL) к земле - появляется CAS и на выходе регистра формируется некая комбинация, но так как я подсаживаю сигнал не в нужное время - естественно выполняется непонятно что )) При этом комбинация на дешифраторе (диаграмма тоже приложена) говорит о том, что если разрешить его работу с D16 - ОЗУ должно включиться (по состоянию ШД и ША).
Какие идеи насчет двух входов IOSEL(тех что не ША)? А если из ЛА8(или диода) и логики сделать функциональную замену неработающему разряду, для тестов? только все хорошо проверить, чтоб не оказалось одновременно выбрано несколько устройств(на выдачу, т.е. на чтение процом). Хотя если тактовую не снимать не должны пожечь друг друга, но все же...
Х.З. Нужно еще разбираться. Они оба зависят от регистра конфигурации. Если предположить, что туда пишется по старту 0x61 т.е. 0100 на выходах ИР26 сверху-вниз по схеме, то состояние I2 идет в 1 т.е весь ввод-вывод идет на устройства (как и нужно при инициализации), а так как бит D6 ШД активен - должно включиться ОЗУ.
Да, а cочетание в нуле обеих входов IOSEL I1 и I2 вообще выключает дешифрацию. Но вообще строить предположения на основе, возможно, неисправной м/сх сложно. В принципе, можно примерно прикинуть, какой должна быть прошивка, но смущает дублирование D0 и D7 на выходах IOSEL. Не уверен, что так нужно... Надо еще схему "пожевать" ))
По тексту прошивки имеются ссылки на порты регистра конфигурации ИР 26
a1h, a9h и b9h
Порт b1 (A4-1 A5-0), как я понимаю, не используется.
Пишется в эти регистры явно либо 61h, либо 63h, но есть еще одна процедура, которая выжидая изменение бита D4 в порту e8h (таймера?) устанавливает порт a1h в некое значение. Точка входа в процедуру задана одним из JP (JP fa36) вначале (10 строка), но на нее я прямого выхода не нашел. Значит ли это, что этот JP вызывается неким внешним источником, либо командой CP/M (или эмулятором спектрума) Интересно, что туда пишется в этом случае?
По тому, что снял анализатором есть почти все комбинации (28 из 32), но не совсем понятно, нужно ли разрешать порт ИР26 при 0 в I2 IOSEL (при 1 - очевидно, нужно). Если запретить - то есть вероятность, что комп может не вернуться из некоего режима до выключения питания. С другой стороны - может так и нужно?
Вообще на форуме довольно много владельцев таких компов. Неужели никто не снял прошивки? Я то со своей кривой снять могу - но лучше иметь оригинал. Запустить комп в режиме монитора, скорее всего, можно будет, но там еще есть и другие режимы - и как оно себя в них поведет (и как было задумано разработчиками) - догадаться сложно.
Используется при эмуляции ZX. Я уже где-то писал, в ИР26 записывается конфигурация памяти:
a1 - для доступа DMA канал 0 (и 2?)
a9 - для доступа DMA канал 1
b1 - после срабатывания ловушки по NMI
b9 - обычный режим процессора
Что пишется:
D0 - защита записи ОЗУ в области 0000-3FFF (1-можно, 0-нельзя)
D1,D2,D3 - номер карты памяти
D4 - активация ловушки по доступу к портам (F0-FF?)
D5 - включение ПЗУ по адресам F800-FFFF (после сброса и до вывода в порт - ПЗУ включено везде)
D6 - так и не выяснил зачем
D7 - включение экрана ZX (т.е. другое формирование цветов точек)
Карты памяти есть в конфиге эмулятора, но насколько они соответствуют реалу - неизвестно. Дампов РЕ-шек то нет...
Но эмулятор ZX запускается, хотя есть глюки с клавой (непонятно почему).
В разборе должно помочь... А что туда (b1) пишется, какой код? Из ПЗУ этот конфиг не записывается, видимо это происходит в проге эмуляции ZX? Просто там есть такая комбинация, которая перенаправляет почти весь ввод/вывод на вход B дешифратора ИД4. Сейчас как раз пытаюсь разобраться в этой цепочке.
P.S. Вроде, нашел недостающие байты в прошивке - инициализация ВВ51. Она происходит где-то дальше, куда ПЗУ в моем случае не попадает. Теперь, вроде как есть все комбинации, но пока неясно, почему дублируется D0 и D7.
А какую нужно считать РЕ3???
С этикеткой D16??
Вот D16
d16.rom
Ага. D16 Формат от младших байт к старшим? Раскладка выводов стандартная? (D0-1..D7-9 I0-10..I16-14)
Программатор от solegstar
http://zx-pk.ru/threads/15617-progra...+%D1%80%D0%B53
Ясно уже вижу, что у меня РЕ битая - вместо F7 - FF по адресу 0F, соответственно ИР не выбирается. Щас сравню с тем, что наваял по схеме.
Сравнил. Моя прошивка не работала бы нормально, так как я не учел все варианты срабатывания F7. У меня там везде FF, так как нога D3 не срабатывает. Но инициализация пройти должна была корректно :)
Кстати, и при нуле на I2 работало бы неправильно - там другой код. А вот D0 и D7 действительно должны дублироваться при адресе 0A.
Поставил ПЗУ с прошивкой, считанной oracleua (спасибо Alex_LG за записанные РЕшки). Картинки не появилось, но начало инициализироваться ОЗУ и опрашиваться клавиатура. Теперь при нажатии на клавиатуре "I" щелкает реле загрузки, как и положено. Схему почти срисовал (скоро выложу новые черновики - там уже просматривается принцип работы). Остались мелочи вроде последовательного порта с таймером (они связаны одним каналом) и схемы управления магнитофоном. Проблема с синхрогенератором, естественно, никуда не делась.
Немного оффтопа - хочу собрать для программирования РЕ такую схемку
http://www.makeshema.ru/173-shema-pr...rammatora.html
Все устраивает (особенно цена комплектующих и трудоемкость сборки :) ), но есть сомнения в выходном ключе. Транзисторы применяются, мягко говоря, небыстрые - не будет ли такой программатор работать неустойчиво?
Ну 973-й поставьте, вместо 816-го. Как вот тут.