PDA

Просмотр полной версии : Ремонт: ошибки ОПТС



esl
25.12.2012, 21:20
загрузка ОПТС и обработка Fkeys
ОПТС 1.1 и ОПТС2 отличаются ...

стартуем в конфгурации 0 (ROM 0000..37ff)

инициализация PPI1A
инициализация PPI2A
инициализация TMR

проверка нажатия F1-F5, если нажато то пропускаем тесты (переходим на _Fast_F_RUN)

0xC9 -> 0xF5FD (F3+Reset addr)

выключаем LUT (все цвета в 0)

проверяем PPI2A (бегущая 1 в порту A)
если ошибка то начинаем пикать бесконечно (бип бип бип)

проверка ACZU
если ошибка то начинаем пикать бесконечно (бип бип бип)

ACZU в порядке, используем его как стек.

очищаем GZU, заливаем его цветом 1 (синий)
включаем отображение ( все ACZU белые, прафика каждая своим цветом)

стек в конец ACZU (ld sp,0xffff)
выводим надпись 'ОПТС 1.1'
BEEP

конфгурации 14 (ROM 0000..5fff)
считаем контрольную сумму (просто сумируется ПЗУ в байт,) должно быть =0
если ошибка то пикаем 5 раз и выводим "Системный блок неисправен"

неразрушающие тест RAM
конфгурации 14 (RAM 2000..f7ff)
если ошибка то пикаем 5 раз и выводим "Системный блок неисправен"

тесты прошли без ошибки,
эмитируем что небыли нажаты.

_Fast_F_RUN:

скопируем дефолтные значения системных переменных.
инициализация LAN
определяем номер РМУ
инициализация PIC

установка флага наличия FDD

RAM:0490 ; Read from PIT, INT7 should be 1 if fdd exist
RAM:0490 ;
RAM:0490 3E 21 ld a, _DS0|_MOTOR
RAM:0492 32 39 FB ld (_1C_PPI1B_DrvReg), a
RAM:0495 ;
RAM:0495 7E ld a, (hl)
RAM:0496 E6 80 and 80h ; 'Ç'
RAM:0498 CA 9C 04 jp z, no_FDD_Detected
RAM:049B 2F cpl
RAM:049C no_FDD_Detected:
RAM:049C 32 01 F7 ld (FDDFLAG), a


если в процессе загрузки не нажаты F1..F5 то если подключен ExtROM загрузка из него.

F1
- если сетевой номер != 0 то загрузка бейсика
F1F5:
- если не найден FDD (via FDDFLAG) то загрузка бейсика

- включаем мотор, ждем готовности FDC некоторое время
если нет готовности, то загрузка бейсика

- пробуем прочитать 1 сектор с 0й дорожке в режиме Double Density, если ок проверка CRC
- пробуем прочитать 1 сектор с 0й дорожке в режиме Single Density, если не ок то загрузка бейсика

- проверка СRC и если не совпала то зангрузка бейсика
иначе если всё ок то запускаем диск.

F2
- проверяем наличие EXTROM
ppi2.c.7=0
проверяем что в PIC стоит запрос на прерывание 1
если нет то ошибка наличия ExtROM
то если была нажата F2+Reset то выводим
"Подключите внешнее ПЗУ"
иначе заргрузка бейсика.
т.е. если ничего небыло нажато, то пробуем загрузится из
ПЗУ если оно есть.
иначе загрузка EXTROM (см отдельную тему)

F3
- call 0xF5FD
- jp StartTestLS
если программа записала в 0xF5FD jmp на себя то можно рестартовать в нее по F3+Reset
сейчас знаю тольк FORTHBAS.CCC у которого это используется.

F4 - сразу загрузка бейсика

F5 - пробуем загрузиться с FDD без проверки номера РМУ (JP F1F5:)



зато сразу включаем отображение ( все ACZU белые, прафика каждая своим цветом)
поэтому на экране видны следы теста ACZU

проверка ACZU
если ошибка то начинаем пикать бесконечно (бип бип бип)

ACZU в порядке, используем его как стек.

очищаем GZU, заливаем его цветом 1 (синий)

стек в конец ACZU (ld sp,0xffff)
выводим надпись 'ОПТС 2.0'
BEEP

проверяем PPI3A EXTROM вместо PPI2A (бегущая 1 в порту A)
если ошибка то на экране "Ошибка ШИНЫ" + 5beep

конфгурации 14 (ROM 0000..5fff)
считаем контрольную сумму (просто сумируется ПЗУ в байт,) должно быть =0
если ошибка то на экране "Ошибка ПЗУ" + 5beep


очищаем GZU, заливаем его цветом 1 (синий)

тест RAM
конфгурации 14 (RAM 2000..f7ff)
если ошибка то на экране "Ошибка ОЗУ" + 5beep

0xC9 -> 0xF5FD (F3+Reset addr)

тесты прошли без ошибки,
эмитируем что небыли нажаты.

_Fast_F_RUN:

скопируем дефолтные значения системных переменных.
инициализация LAN
определяем номер РМУ
инициализация PIC

определим размер GZU (кол-во страниц) (FDDFLAG=0x80 если 192к гзу)
быстрый тест GZU
если ошибка то на экране "Ошибка ГЗУ" + 5beep

установка флага наличия FDD

RAM:0490 ; Read from PIT, INT7 should be 1 if fdd exist
RAM:0490 ;
RAM:0490 3E 21 ld a, _DS0|_MOTOR
RAM:0492 32 39 FB ld (_1C_PPI1B_DrvReg), a
RAM:0495 ;
RAM:0495 7E ld a, (hl)
RAM:0496 E6 80 and 80h ; 'Ç'
RAM:0498 CA 9C 04 jp z, no_FDD_Detected
RAM:049B 2F cpl
RAM:049C no_FDD_Detected:
RAM:049C 32 01 F7 ld (FDDFLAG), a


если в процессе загрузки не нажаты F1..F5 то если подключен ExtROM загрузка из него.

F1
- если сетевой номер != 0 то загрузка бейсика
F1F5:
- если не найден FDD (via FDDFLAG) то загрузка бейсика

- включаем мотор, ждем готовности FDC некоторое время
если нет готовности, то загрузка бейсика

- пробуем прочитать 1 сектор с 0й дорожке в режиме Double Density, если ок проверка CRC
- пробуем прочитать 1 сектор с 0й дорожке в режиме Single Density, если не ок то загрузка бейсика

- проверка СRC и если не совпала то зангрузка бейсика
иначе если всё ок то запускаем диск.

F2
- очистка экрана
- проверяем наличие EXTROM
ppi2.c.7=0
проверяем что в PIC стоит запрос на прерывание 1
если нет то ошибка наличия ExtROM
то если была нажата F2+Reset то выводим
"Нет внешнего ПЗУ"
иначе заргрузка бейсика.
т.е. если ничего небыло нажато, то пробуем загрузится из
ПЗУ если оно есть.
иначе загрузка EXTROM (см отдельную тему)

F3
- call 0xF5FD
если программа записала в 0xF5FD jmp на себя то можно рестартовать в нее по F3+Reset
сейчас знаю тольк FORTHBAS.CCC у которого это используется.

F4 - сразу загрузка бейсика

F5 - пробуем загрузиться с FDD без проверки номера РМУ (JP F1F5:)

dk_spb
25.12.2012, 23:01
С нетерпением ждем продолжения!

marinovsoft
29.12.2012, 19:18
ОПТС 2.0 может сообщать:
1. Неисправность шины. Это ВВ55
2. -//- ПЗУ
3. -//- ОЗУ
4. -//- ГЗУ
5. Нет внешнего ПЗУ
6. Неверная КС
у меня были, 1,3,4.
1 - менял ВВ55 на переферийный порт.
4 - менял РУшки
3 - устранил свою же "соплю", которую кинул, пока менял РУ

Успешное прохождение теста ГЗУ не 100% свидетельствует о его исправности. Так было у меня - светлые вертикальные линии, совпадающие с правой границей симоволов. При этом все работало. Поменял еще одну РУ - все стало ОК.

esl
29.12.2012, 19:35
5 и 6 относится только к загрузке из внешнего ПЗУ
а не к тестам, я делал отдельную тему по этому поводу

Ещё есть тест АЦЗУ - но о нем нет сообщения :)
В общем если плата пикает то ошибка железа

esl
29.12.2012, 22:33
ОПТС 2.0 может сообщать:
1. Неисправность шины. Это ВВ55
2. -//- ПЗУ
3. -//- ОЗУ
4. -//- ГЗУ
5. Нет внешнего ПЗУ
6. Неверная КС

2 - малоинформативно, хотя просто считает CRC ПЗУ
тесты разных ЗУ есть желание расписать, но как пойдет ...
а 1 - проверяет одну из 3х ВВ55 (причем разную в ОПТС1 и ОПТС2)
хотя системный порт косвенно в других тестах участвует.



Успешное прохождение теста ГЗУ не 100% свидетельствует о его исправности.


как и любые тесты, это компромис
вон в Контрольно Тестово-Диагностическая Программа = КТДП
тесты - ну очень длинные

кстати как раз это КТДП и должна была быть во внешнем ПЗУ, но про это я узнал уже много позже ;)

dk_spb
30.12.2012, 00:44
кстати как раз это КТДП и должна была быть во внешнем ПЗУ, но про это я узнал уже много позже ;)
А подробности (схема, прошивка) имеются?

esl
30.12.2012, 01:36
А подробности (схема, прошивка) имеются?

создал отдельную тему http://zx-pk.ru/showthread.php?p=562845
там выложил КТДП в виде образа диска и ROM

а описание внешней ПЗУ http://zx-pk.ru/showthread.php?t=15297
там в теории все очень просто (нарисовал бы кто)
там на порт расширения (боковой) выведено все что надо все 3 порта одной из ВВ55
питания, и всякие доп сигналы.

правда я своими глазами видел 3 типа разъемом ;(
у нас в классе стояли одинаковые, но на половине машин - мама, на половине - папа
а на контуре - свой разъем

dk_spb
04.01.2013, 21:19
Подскажите куда копать: 8010, и всё вроде бы хорошо: начальные тесты проходим, в Бейсик вываливаемся, в Бейсике на клавиши реагируем. Но есть одна проблема: на экране все символы (все, включая стек внизу справа при старте ОПТС) выводятся как значок рожицы......
Вот еще инфа: если я выходы триггера D44 (они же входы ПЗУ знакогенератора) корочу на + - по всему экрану отображается другой знак.
Если же я также корочу на плюс входы D44 - картинка не меняется. То есть явно не сигнала строба для триггера.
Но, если я строб корочу на минус - все поле экрана заполняется той же рожицей....
Если сажаю на постоянную запись любую 132ру4 - тоже экран произвольно забивается рожицами.
Посмотрел осцилом - очень похоже на битую D44.
Кстати, по всем схемам она ИР27, а на плате ИР23. Это так и должно быть?

esl
04.01.2013, 23:06
вот тут маожно глянуть на знакогенератор
http://zx.pk.ru/showpost.php?p=430338&postcount=25
рожица это код 1 или 2 (белая и черная)

по описанию выглядит как защелкнулся один адрес и не меняется.

в основном на фото и монтажках (сверхувниз)
ROM
ИР27 (d44)
ИР22

но есть платы и с ИР23
типа платы BYTEMAN
и фото самой старой платы что у меня есть (там даты микросхем 85-86 год)

похоже на более старых были 23 потом стали 27
но не факт что схема не менялась (эт надо электронщиков пинать)

dk_spb
04.01.2013, 23:23
Меня вот что смущает: если ИР закусила один символ, почему символы в БЕйсике на экране именно в тех местах где должны, а в остальных местах нет вообще никаких символов (даже рожицы)? Или получается что один бит ИР23 пропускает нормально, а остальные всегда в нуле?
Ладно, попробую ИР23 поменять.

BYTEMAN
05.01.2013, 00:06
dk_spb, глянь осциллом что там на ней защёлкивается...

dk_spb
06.01.2013, 13:07
Еще вопрос про ошибки ОПТС 1.1 : непрерывный писк при пустом экране на что указывает? Это просто комп так не стартует или это ОПТС так об ошибке сообщает? На кнопку ресет реакции нет.

esl
06.01.2013, 14:11
я бы сказал не стартует
он при старте должен пикнуть один раз
а потом про ошибки - пиканьем сообщает

BYTEMAN
06.01.2013, 15:27
если непрерывный низкочастотный писк - не стартует вообще (не программируется ВИ53). Если "Пик-Пик-Пик" с мусором на экране - траблы с записью в память (в моём случае была трабла с АЦЗУ), при этом ОПТС обовещает о трабле пиканьем.

marinovsoft
07.01.2013, 07:39
Если нет напряжения -12в - тоже пищит.
Upd/1
На днях решил запустить на своем Корвете (v2, ОПТС 2.0) КТДП.
Как оказалось, КТДП от первой версии Корвета не подходит ко второй, более того, он работает корректно только под МикроДОС'ом. Во вложении - образ диска. Запускать КТДП командой T8000.

Также всплыл немаловажный факт, что в программе MST при форматировании дискеты необходимо интерлив выставить в 1, у меня он как-то выпал из памяти и я уже было начал думать что у меня дисковод начал сдыхать. Про интерлив упоминается вскользь в одном из документов на корветовскую CP/M-80.

Upd/2
Нашел видео времен ремонта Корвета. Захват видео через ТВ-тюнер "Неисправность ГЗУ".
http://video.yandex.ru/users/mehfk/view/3/

DATAsoft
21.08.2013, 00:08
Сегодня ремонтировал Корвет с ОПТС 1.1. На экране была надпись - Системный блок неисправен. Диагноз - битая ОЗУ-шка РУ5. После замены Корвет нормально запустился!

esl
22.04.2015, 23:49
обновил первый пост, расписал шаги

esl
25.04.2015, 20:37
обновил опять первый пост
добавил шаги ОПТС1.1 и ОПТС2.0

При старте,
инициализация таймера и PIC,

если нажата F1-F5 - скипаем тесты и делаем Fx+Reset (см отдельно)

Тест 1 - Шина перефирийных БИС

собственно проверяет ВВ55
(ОПТС 1 - ту что для принтера PPI2 (XX30) порт 2)
(ОПТС 2 - PPI3 (XX08) порт расширения системы) !!!!!!!!!

пишет в него последовательно бегущую 1 и читает
если не совпало - то кричим ошибка

ОПТС 1 делает ПИК ПИК ПИК ПИК ПИК (бесконечно)
ОПТС 2 при этом пишет "Неисправность ШИНЫ" и 5 раз бикает

вот код из ОПТС



; проверка шины данных периферийных БИС

LXI H,LSTDAT+PBASE1 (xx30)
MVI A,1
DBT:
MOV M,A
CMP M
JNZ BUSERR
RAL
JNC DBT
....



выключаем LUT

тестирует АЦЗУ
если неисправно делает ПИК ПИК ПИК ПИК ПИК
для ОПТС 2 пик пик по идее только для АЦЗУ

очищаем GZU

включаем LUT (устанавливаем стандартные цвета)
(т.е. с этого момента должно быть ярко белые буквы на синем фоне)

стек в ACZU (бегающие символы в правом нижнем углу экрана это и есть стек.

с этого момента считаем что АЦЗУ работает и можно выводить сообщения на экран

выводим надпись ОПТС x.x

пикаем

проверка контрольной суммы ПЗУ

если ошибка то (ОПТС1 5 бипов и надпись СИСТЕМНЫЙ БЛОК НЕИСПРАВЕН)

далее тест RAM

если ошибка то (ОПТС1 5 бипов и надпись СИСТЕМНЫЙ БЛОК НЕИСПРАВЕН)

ОПТС2 более информативен на надписи, см. ниже

AlivE
07.07.2015, 18:41
Приветствую! Сегодня произошёл несчастный случай. Достал свой старый ПК8020, подключил его с помощью стандартного БП от компьютера через 20-ти пиновый разъём. Всё прекрасно работало. Взбрело мне в голову попробовать подключить через молекс, и всё полетело... Теперь при нормальном подключении постоянный писк и чёрный экран. Иногда удаётся войти в Бейсик через F4, но даже там в надписи с пропущенными буквами и кнопки реагируют через раз. Можно выбрасывать или ещё есть надежда?

Alex_LG
07.07.2015, 22:44
Можно выбрасывать или ещё есть надежда?

Надежда всегда есть, тем более, что комп хоть иногда грузится. Для начала внимательно прочитайте эту тему и тему "Неисправности", сделайте, что описано в этих темах и вот если ничего не получится - просите помощи "у зала". Фото экрана тоже не помешали бы.

P.S. Из собственного опыта - прошейте сразу КТДП (это если комп реагирует на F2 + Reset, на экране должна появится надпись "Подключите внешнее ПЗУ" ) и это намного сократит время ремонта.