Действительно, бред полный: GPIO B 11 выведен наружу только в кузове UFBGA100. Они что, рыбу ели? :(
Вид для печати
Alex_K, а есть где-нибудь описание кодов ошибок которые выводит testmz? У меня единственная ошибка: Сектор Х ... код ошибки 102.
Х - случайный сектор. 10 раз тест делаешь 10 раз сектор разный.. может вообще не быть, а может быть несколько.
Вот и я о чем, и если добавить сюда еще невозможность перенести отладку на другие пины, получается совсем грустно.
Да, кстати. ИМХО, запаивать на свою плату Черную Пилюлю - не лучшее решение. Я бы, по-простому, запаял туда STM-ку с обвязкой, и не морочил голову. И выбрал бы STM-ку с полноценным GPIO B, а не это 411-е убожество. Хотя бы F407RET6.
Данные коды ошибок формирует драйвер дисковода в ПЗУ УКНЦ.
1 - ошибка контрольной суммы зоны данных
2 - ошибка контрольной суммы заголовка сектора
4 - не найден маркер данных
6 - дискета защищена от записи
7 - нулевая дорожка не обнаружена
10 - дорожка не обнаружена (её номер равен или больше 128)
11- ошибочный массив параметров
13 - неверный формат сектора при форматировании
14 - ошибка линии ИНДЕКС при форматировании
100 - ошибка поиска маркера, считываются одни нули
101 - ошибка поиска маркера, не найдена синхрозона
102 - не обнаружен адресный маркер заголовка сектора или не обнаружен сектор с заданным номером
Я тоже сначала ловил SYNC программно, а потом плюнул и прицепил аппаратный распознаватель. Сначала это тоже была ПЗУха (я, правда, уложился в 2764), за ней регистр 1533ИР22, в нем, правда, была задействована всего пара-тройка битов, и что-то логическое на 1533ЛЛ1. Преимущества: полностью освобождаемся от необходимости следить за фронтом SYNC, а остальной обмен асинхронный - пока не ответишь RPLY, обращающийся процессор будет ждать, ну, если не дойдет дело до тайм-аута. Недостатки - разрастающийся огород. Потом я туда добавил еще кое-что, потом еще, и огород вырос настолько, что взял пару Галок (GAL16V8D), у одной не хватило ног, и прошил все это хозяйство в них. Это решение тоже имеет недостаток - Галки давно сняты с производства. На Али их, правда, вАлом, но все б/у, с разбора, и не все годные - попадаются как негодные сразу, так и, что самое плохое, теряющие прошивку через несколько месяцев или даже дней.
В аттаче файл sysmin.dsk:
Загрузка в эмуляторе:Код:Filename Blocks Date Start Bytes
---------- ------ --------- ----- --------
RT11SJ.SYS 79 25-Feb-83 14 40448
SWAP .SYS 30 08-Jul-96 93 15360
TT .SYS 2 18-Mar-87 123 1024
MZ .SYS 4 15-Jan-90 125 2048
< UNUSED > 1471 129 753152
---------- ------ --------- ----- --------
4 files, 115 blocks
1471 free blocks
Код:RT-11SJ (S) V05.02
?KMON-F-File not found DK:STARTS.COM
.
Все безобразие в том, что F407RET6 может с легкостью эмулировать всю УКНЦ :( Какой тогда смысл?
Черная пилюля стоит рублей 300, а самое главное, не нужно паять мелочевку. Я то ее припаяю, а кого-то просто нет такого оборудования. Разъем запаять проще и вставить в него блюпил.
Alex_K, AFZ, nzeemin и все кто мне помогает - спасибо вам огромное!!!
Что-то становится грустно когда пытаешься выявить косяк с 102 ошибкой.. Тк он случайный то: либо ловушка на связке 27с512+155ла3 пропускает запросы к портам 177130(2), либо STMка не успевает попасть в прерывание.
Я вот чего не понимаю, флопы к ВП1-128 подключаются разные, у них разные техданные, например, время перемещения головки. Как ВП1-128 говорит УКНЦ, что данные не готовы? Да я знаю есть 7 бит TR, но как его обрабатывает УКНЦ? Повторно шлет команду, или просто еще раз перечитывает?
У меня ПЗУ и ла3 ловят на ШДА обращения к портам 177130 и 177132, по ниспадающему SYNC, если это делать СТМкой, то некогда будет делать всю остальную работу.
Те пока не отпустишь?
Я просто стараюсь максимально быстро отпустить RPLY, если его можно задержать на по-дольше, то можно впихнуть разбор команды от УКНЦ и подготовку данных..
Это вообще допустимо?
- - - Добавлено - - -
Те я вовремя зажал RPLY? Если так, тогда прерывания успевают отработать ответы. Это радует! :)
А ошибка 102 свидетельствует о том, что за энное количество попыток (около 30) не удалось найти сектор с заданным номером. Т.е. попадался либо адресный маркер заголовка данных, либо сектор не с тем номером.