Если глянуть описание формата BRU, то может оказаться, что это системные данные.
Вид для печати
Если глянуть описание формата BRU, то может оказаться, что это системные данные.
Я тут эксперимента ради пока что запущу тан на нормальную ленту с целым маркером, которую я предыдущую сгонял (MTDUMP01), посмотрим какая будет реакция на честный конец ленты. Перегонять ленту, которую мы сегодня мучали, буду уже в следующий раз, скорее всего либоьзавтра, либо ужеьпосле выходных.
- - - Добавлено - - -
Опа, а с этой ленты походу рдтап считал далеко не все... Встретились два еофа, а за ними еще кууууча данных...
Да вобщем-то не только BRU может много заголовков содержать...
- - - Добавлено - - -
Ладно, теперь есть инфа некоторая о лентах которым вписали конец в середину, можно подумать о полном вычитывании для разбора...
- - - Добавлено - - -
Кстати нашел ошибки в TAN - так что инфу он может и неправильно отображать... Но свою роль он выполнил по сути.
Как-то так
ТАН переписывал в текущей строке цифры, т.е. могло быть первое число 80 потом в той же строке 4096 потом 520 и т.п.Код:
.RU TAN
MAX BLOCK SIZE: 20480 BYTES
80/42
EOF
560/2410
EOF
80/2
EOF
80/2
EOF
560/2076
EOF
80/2
EOF
EOF
2096/31
EOF
80/2
EOF
80/2
EOF
2608/65
EOF
80/2
EOF
80/2
EOF
2608/67
EOF
80/2
EOF
80/2
EOF
2608/35
EOF
80/2
EOF
80/2
EOF
2608/65
EOF
80/2
EOF
80/2
EOF
2608/38
EOF
80/2
EOF
EOF
2096/24
EOF
80/2
EOF
80/2
EOF
4144/397
2608/251
EOF
80/2
EOF
80/2
EOF
2096/549
EOF
80/2
EOF
80/2
EOF
1584/389
EOF
80/2
EOF
80/2
EOF
4144/219
EOT
Да это в принципе необязательно... Надо рдтап добить чтобы читал все :)
Сегодня с большой вероятностью снова смогу попасть на склад. Тут такая неполадка образовалась... http://zx-pk.ru/showthread.php?t=107...l=1#post859237 Буду её как-то стараться решить.
Параллельно хотелось бы узнать, есть ли чего по RDTAP'у, можно ожидать к вечеру новую версию с чтением ленты целиком? :) Думаю, часа за три одну ленту (которая со сбоями) я бы осилил...
Есть новый вариант анализатора, вроде все пофиксено. Еще раз бы прогнать на ленте с ошибками. В общем случае по-водимому в случае ошибки чтения которая не решилась с помощью повторных чтений дальше продолжить читать ленту не получится. Вобщем последние тесты для очистки совести... Новая программа с исходниками здесь. Ну а в RDTAP видимо надо добавить возможность по ошибке завершить ленту на том сколько считалось...
- - - Добавлено - - -
Для полного счастья проге нужен XM/ZM монитор но и без того для большинства лент сойдет :)- - - Добавлено - - -Код:.RU TAN
?TAN-F-Unable to fetch handler - TAP:
.AS MU TAP
.RU TAN
?TAN-I-Analizyng TAP: max block size 63068 bytes
?TAN-I-Reading TAP: 2 block(s) of 80 bytes
?TAN-I-Reading TAP: end of file
?TAN-I-Reading TAP: end of file
?TAN-I-Reading TAP: 1 block(s) of 80 bytes
?TAN-I-Reading TAP: end of file
?TAN-I-Reading TAP: end of file
?TAN-I-Reading TAP: end of file
.SET RUN NOVBGEXE
.RU TAN
?TAN-I-Analizyng TAP: max block size 19064 bytes
?TAN-I-Reading TAP: 2 block(s) of 80 bytes
?TAN-I-Reading TAP: end of file
?TAN-I-Reading TAP: end of file
?TAN-I-Reading TAP: 1 block(s) of 80 bytes
?TAN-I-Reading TAP: end of file
?TAN-I-Reading TAP: end of file
?TAN-I-Reading TAP: end of file
.
Выложил там же слегка доработанный RDTAP. Теперь концом ленты считается 3 EOFа подряд, а в случае ошибки чтения сохраняется то, что прочиталось (повторы можно настраивать в драйвере - SET MT RETRY=n). Попутно буду слегка перерабатывать программу.
Дергания - это когда драйвер (а может и контроллер сам по себе тоже) пытается повторить операцию. Когда же драйвер не справился за количество попыток, заданное командой SET MT RETRY=n, он возвращает ошибку программе, и здесь мы ставим крест на продолжении потому как даже если контроллер и может промотать ленту вперед до следующего маркера, мы не сможем сказать какого размера был блок который мы промотали. В дальнейшем если подобная возможность обнаружится - можно пытаться исходя из формата ленты что-то делать. Пока же RDTAP уже должен много чего прочитать чего раньше не мог :)
Тем временем немного побаловался - посчитал сколько влезет инфы у меня на кассеты если писать блоками по 63272 байт.Получилось примерно 3.5G. Натравил TAN - не влез в него такой блок:Код:?TE-I-Erasing TAP: block size 63272 bytes
?TE-I-Erasing TAP: block # 58955
?TE-F-Erasing TAP: error code 2
Пришлось пересобрать с разделением I&D:Код:.RU TAN
?TAN-I-Analizyng TAP: max block size 63068 bytes
?TAN-F-Reading TAP: error code 5
?TAN-F-Reading TAP: error code 5
?TAN-F-Reading TAP: error code 5
.
Итого выяснилось с какими блоками можно работать как минимум на моем контроллере, заодно отыпки обнаружились в тексте сообщений :DКод:.RU TANID
?TAN-I-Analizyng TAP: max block size 64572 bytes
?TAN-I-Reading TAP: 26 block(s) of 63272 bytes^C
^C
.
Если интересно могу затиралку ленты выложить. Правда есть вероятность полного сматывания ленты на СМовских приводах.
- - - Добавлено - - -
При записи большими блоками на консоли (сама прога на втором терминале работала) можно было работать без какой-либо заметной разницы. Сейчас ради интереса запустил затирание блоками по 512 байт - консоль уже тормозит сильно...
- - - Добавлено - - -
Если пошел дальше читать - значит было что читать...
Выложил туда же обновленный TAN. Поддержка I&D, косметические правки. Функционал с точки зрения 18-bit СМ1420 не изменился.
В общем, через час уже буду на складе. На сегодня план трижды прогнать tstdx, прогнать новый tan и rdtap на сбойной ленте. form, новый тан уже в образе diag.dsk?
Нет, не добавлял еще. Сейчас чего-нибудь нарисую, заодно XM положу туда на случай больших размеров блоков (хотя на моей памяти больше 10240 на PDP-11 не встречалось).
- - - Добавлено - - -
Интересно было бы прочитать BRUшные ленты которые я присылал - там быть может интересные вещи найдутся :)
Так её же и мучаю! Сейчас та что с меткой тестовое задание ОСРВ.
Через минут 20-25 начну, еще еду на место.
Ну может как раз новый образ дособрать успею - система еще собирается с драйверами.
- - - Добавлено - - -
Выложил новый diag.dsk.
Три запуска tstdx - без дискеты, с форматированной, с неформатированной. Есть предположение что умер прижим к головке, появились царапины на верхнем слое который нерабочий...
- - - Добавлено - - -Код:.RU TSTDXTSTDX - v1.1
1 sec 00001:53697
INIT 00000:28113 CSR/000040 ; SR/000004 ; ER/000000
Read SR 00000:00406 CSR/000040 ; SR/000000 ; ER/000000
Read 0:01
TR Sector 00000:00004
TR Track 00000:00004
Read Done 00000:01224 CSR/100040 ; SR/000000 ; ER/000120
Program completed.
.RU TSTDX
TSTDX - v1.1
1 sec 00001:53697
INIT 00001:06143 CSR/100040 ; SR/000020 ; ER/000120
Read SR 00000:23446 CSR/000040 ; SR/000200 ; ER/000120
Read 0:01
TR Sector 00000:00004
TR Track 00000:00004
Read Done 00000:07968 CSR/100040 ; SR/000000 ; ER/000120
Program completed.
.RU TSTDX
TSTDX - v1.1
1 sec 00001:53706
INIT 00000:59890 CSR/100040 ; SR/000010 ; ER/000120
Read SR 00000:18721 CSR/000040 ; SR/000200 ; ER/000120
Read 0:01
TR Sector 00000:00004
TR Track 00000:00004
Read Done 00000:07827 CSR/100040 ; SR/000000 ; ER/000120
Program completed.
Сбойный блок всетаки есть - errorcode 0. Сейчас докрутится и скину лог... Надо акто рдтап учить скипать плохие блоки...
- - - Добавлено - - -
Код:
.AS MT1 TAP
.TAN
?TAN-I-Analyzing TAP: max block size 32392 bytes
?TAN-I-Reading TAP: 1 block(s) of 80 bytes
?TAN-I-Reading TAP: 1 block(s) of 512 bytes
?TAN-I-Reading TAP: 2 block(s) of 80 bytes
?TAN-I-Reading TAP: end of file
?TAN-I-Reading TAP: 1 block(s) of 80 bytes
?TAN-I-Reading TAP: 2 block(s) of 512 bytes
?TAN-I-Reading TAP: 2 block(s) of 80 bytes
?TAN-I-Reading TAP: 1 block(s) of 512 bytes
?TAN-I-Reading TAP: 1 block(s) of 80 bytes
?TAN-I-Reading TAP: 1 block(s) of 512 bytes
?TAN-I-Reading TAP: 1 block(s) of 80 bytes
?TAN-I-Reading TAP: 1 block(s) of 512 bytes
?TAN-I-Reading TAP: 1 block(s) of 80 bytes
?TAN-I-Reading TAP: 1 block(s) of 512 bytes
?TAN-I-Reading TAP: 1 block(s) of 80 bytes
?TAN-I-Reading TAP: 1 block(s) of 512 bytes
?TAN-I-Reading TAP: 1 block(s) of 80 bytes
?TAN-I-Reading TAP: 8 block(s) of 512 bytes
?TAN-I-Reading TAP: 1 block(s) of 80 bytes
?TAN-I-Reading TAP: 1 block(s) of 512 bytes
?TAN-I-Reading TAP: 1 block(s) of 80 bytes
?TAN-I-Reading TAP: 6 block(s) of 512 bytes
?TAN-I-Reading TAP: 1 block(s) of 80 bytes
?TAN-I-Reading TAP: 1 block(s) of 512 bytes
?TAN-I-Reading TAP: 1 block(s) of 80 bytes
?TAN-I-Reading TAP: 1 block(s) of 512 bytes
?TAN-I-Reading TAP: 1 block(s) of 80 bytes
?TAN-I-Reading TAP: 2 block(s) of 512 bytes
?TAN-I-Reading TAP: 1 block(s) of 80 bytes
?TAN-I-Reading TAP: 3 block(s) of 512 bytes
?TAN-I-Reading TAP: 1 block(s) of 80 bytes
?TAN-I-Reading TAP: 1 block(s) of 512 bytes
?TAN-I-Reading TAP: 1 block(s) of 80 bytes
?TAN-I-Reading TAP: 1 block(s) of 512 bytes
?TAN-I-Reading TAP: 1 block(s) of 80 bytes
?TAN-I-Reading TAP: 1 block(s) of 512 bytes
?TAN-I-Reading TAP: 1 block(s) of 80 bytes
?TAN-I-Reading TAP: 1 block(s) of 512 bytes
?TAN-I-Reading TAP: 1 block(s) of 80 bytes
?TAN-I-Reading TAP: 1 block(s) of 512 bytes
?TAN-I-Reading TAP: 1 block(s) of 80 bytes
?TAN-I-Reading TAP: 1 block(s) of 512 bytes
?TAN-I-Reading TAP: 1 block(s) of 80 bytes
?TAN-I-Reading TAP: 1 block(s) of 512 bytes
?TAN-I-Reading TAP: 1 block(s) of 80 bytes
?TAN-I-Reading TAP: 1 block(s) of 512 bytes
?TAN-I-Reading TAP: 1 block(s) of 80 bytes
?TAN-I-Reading TAP: 1 block(s) of 512 bytes
?TAN-I-Reading TAP: 1 block(s) of 80 bytes
?TAN-I-Reading TAP: 1 block(s) of 512 bytes
?TAN-I-Reading TAP: 1 block(s) of 80 bytes
?TAN-I-Reading TAP: 1 block(s) of 512 bytes
?TAN-I-Reading TAP: 3 block(s) of 80 bytes
?TAN-I-Reading TAP: 1 block(s) of 1536 bytes
?TAN-I-Reading TAP: 1 block(s) of 80 bytes
?TAN-I-Reading TAP: 2 block(s) of 4096 bytes
?TAN-I-Reading TAP: 1 block(s) of 1024 bytes
?TAN-I-Reading TAP: 1 block(s) of 80 bytes
?TAN-I-Reading TAP: 1 block(s) of 4096 bytes
?TAN-I-Reading TAP: 1 block(s) of 80 bytes
?TAN-I-Reading TAP: 1 block(s) of 4096 bytes
?TAN-I-Reading TAP: 1 block(s) of 80 bytes
?TAN-I-Reading TAP: 1 block(s) of 4096 bytes
?TAN-I-Reading TAP: 1 block(s) of 2560 bytes
?TAN-I-Reading TAP: 1 block(s) of 80 bytes
?TAN-I-Reading TAP: 29 block(s) of 4096 bytes
?TAN-I-Reading TAP: 1 block(s) of 1024 bytes
?TAN-I-Reading TAP: 1 block(s) of 80 bytes
?TAN-I-Reading TAP: 1 block(s) of 2048 bytes
?TAN-I-Reading TAP: 1 block(s) of 80 bytes
?TAN-I-Reading TAP: 20 block(s) of 4096 bytes
?TAN-I-Reading TAP: 1 block(s) of 3584 bytes
?TAN-I-Reading TAP: 1 block(s) of 80 bytes
?TAN-I-Reading TAP: 1 block(s) of 1536 bytes
?TAN-I-Reading TAP: 1 block(s) of 80 bytes
?TAN-I-Reading TAP: 4 block(s) of 4096 bytes
?TAN-I-Reading TAP: 1 block(s) of 80 bytes
?TAN-I-Reading TAP: 2 block(s) of 4096 bytes
?TAN-I-Reading TAP: 1 block(s) of 2048 bytes
?TAN-I-Reading TAP: 1 block(s) of 80 bytes
?TAN-I-Reading TAP: 1039 block(s) of 4144 bytes
?TAN-F-Reading TAP: error code 0
?TAN-I-Reading TAP: 45 block(s) of 4144 bytes
?TAN-I-Reading TAP: 1 block(s) of 2608 bytes
?TAN-I-Reading TAP: 1 block(s) of 80 bytes
?TAN-I-Reading TAP: 1 block(s) of 4096 bytes
?TAN-I-Reading TAP: 1 block(s) of 2560 bytes
?TAN-I-Reading TAP: 1 block(s) of 80 bytes
?TAN-I-Reading TAP: 8 block(s) of 4096 bytes
?TAN-I-Reading TAP: 1 block(s) of 1024 bytes
?TAN-I-Reading TAP: 1 block(s) of 80 bytes
?TAN-I-Reading TAP: 1 block(s) of 4096 bytes
?TAN-I-Reading TAP: 1 block(s) of 1024 bytes
?TAN-I-Reading TAP: 1 block(s) of 80 bytes
?TAN-I-Reading TAP: 2 block(s) of 4096 bytes
?TAN-I-Reading TAP: 1 block(s) of 512 bytes
?TAN-I-Reading TAP: 1 block(s) of 80 bytes
?TAN-I-Reading TAP: 3 block(s) of 4096 bytes
?TAN-I-Reading TAP: 1 block(s) of 1024 bytes
?TAN-I-Reading TAP: 1 block(s) of 80 bytes
?TAN-I-Reading TAP: 1 block(s) of 1536 bytes
?TAN-I-Reading TAP: 1 block(s) of 80 bytes
?TAN-I-Reading TAP: 1 block(s) of 3584 bytes
?TAN-I-Reading TAP: 1 block(s) of 80 bytes
?TAN-I-Reading TAP: 2 block(s) of 4096 bytes
?TAN-I-Reading TAP: 1 block(s) of 80 bytes
?TAN-I-Reading TAP: 2 block(s) of 4096 bytes
?TAN-I-Reading TAP: 1 block(s) of 2048 bytes
?TAN-I-Reading TAP: 1 block(s) of 80 bytes
?TAN-I-Reading TAP: 1 block(s) of 3072 bytes
?TAN-I-Reading TAP: 1 block(s) of 80 bytes
?TAN-I-Reading TAP: 1 block(s) of 4096 bytes
?TAN-I-Reading TAP: 1 block(s) of 512 bytes
?TAN-I-Reading TAP: 1 block(s) of 80 bytes
?TAN-I-Reading TAP: 1 block(s) of 4096 bytes
?TAN-I-Reading TAP: 1 block(s) of 3584 bytes
?TAN-I-Reading TAP: 1 block(s) of 80 bytes
?TAN-I-Reading TAP: 1 block(s) of 3072 bytes
?TAN-I-Reading TAP: 1 block(s) of 80 bytes
?TAN-I-Reading TAP: 217 block(s) of 4144 bytes
?TAN-I-Reading TAP: 1 block(s) of 560 bytes
?TAN-I-Reading TAP: end of file
?TAN-I-Reading TAP: 2 block(s) of 80 bytes
?TAN-I-Reading TAP: end of file
?TAN-I-Reading TAP: end of file
?TAN-F-Reading TAP: error code 0
?TAN-I-Reading TAP: 4 block(s) of 2064 bytes
?TAN-I-Reading TAP: 1 block(s) of 1552 bytes
?TAN-I-Reading TAP: 1 block(s) of 2064 bytes
?TAN-I-Reading TAP: 2 block(s) of 528 bytes
?TAN-I-Reading TAP: 1 block(s) of 2064 bytes
?TAN-I-Reading TAP: 2 block(s) of 528 bytes
?TAN-I-Reading TAP: 1 block(s) of 2064 bytes
?TAN-I-Reading TAP: 2 block(s) of 528 bytes
?TAN-I-Reading TAP: 1 block(s) of 2064 bytes
?TAN-I-Reading TAP: 2 block(s) of 528 bytes
?TAN-I-Reading TAP: 1 block(s) of 2064 bytes
?TAN-I-Reading TAP: 2 block(s) of 528 bytes
?TAN-I-Reading TAP: 1 block(s) of 2064 bytes
?TAN-I-Reading TAP: 2 block(s) of 528 bytes
?TAN-I-Reading TAP: 1 block(s) of 2064 bytes
?TAN-I-Reading TAP: 2 block(s) of 528 bytes
?TAN-I-Reading TAP: 1 block(s) of 2064 bytes
?TAN-I-Reading TAP: 2 block(s) of 528 bytes
?TAN-I-Reading TAP: 1 block(s) of 2064 bytes
?TAN-I-Reading TAP: 2 block(s) of 528 bytes
?TAN-I-Reading TAP: 1 block(s) of 2064 bytes
?TAN-I-Reading TAP: 2 block(s) of 528 bytes
?TAN-I-Reading TAP: 1 block(s) of 2064 bytes
?TAN-I-Reading TAP: 1 block(s) of 528 bytes
?TAN-I-Reading TAP: 6 block(s) of 2064 bytes
?TAN-I-Reading TAP: 1 block(s) of 528 bytes
?TAN-I-Reading TAP: 10 block(s) of 2064 bytes
?TAN-I-Reading TAP: 1 block(s) of 1552 bytes
?TAN-I-Reading TAP: 1 block(s) of 2064 bytes
?TAN-I-Reading TAP: 1 block(s) of 528 bytes
?TAN-I-Reading TAP: 1 block(s) of 1552 bytes
?TAN-I-Reading TAP: 1 block(s) of 2064 bytes
?TAN-I-Reading TAP: 1 block(s) of 528 bytes
?TAN-I-Reading TAP: 1 block(s) of 2064 bytes
?TAN-I-Reading TAP: 1 block(s) of 528 bytes
?TAN-I-Reading TAP: end of file
?TAN-I-Reading TAP: 2 block(s) of 80 bytes
?TAN-I-Reading TAP: end of file
?TAN-I-Reading TAP: end of file
?TAN-F-Reading TAP: error code 2
form, запускать рдтап?
Patron, можно будет, но там разъемы к сожалению не очень, точнее совсем нестандартные, перепаивать шлейф пока что не буду... Что можно из лога tstdx выяснить? Что там видно? Я к сожалению сильно не изучал подробно доку по программированию 5631, сходу понять не могу.
- - - Добавлено - - -
form, пробовал на двух магнитофонах - вашем и рабочем своем - на обоих на одном и том же месте затык. Думаю что ретрай не поможет. Пробовал искусственно прижим ленты сделать - не помогает, есть сбой на этом месте.
Видимо мое предположение верно, нет прижима...
- - - Добавлено - - -
Пофиксил индекс, вот текущий тстдх на форматированном диске:
- - - Добавлено - - -Код:.ru tstdxTSTDX - v1.1
1 sec 00001:53724
INIT 00002:40923 CSR/000040 ; SR/000204 ; ER/000000
Read SR 00000:32096 CSR/000040 ; SR/000200 ; ER/000000
Read 0:01
TR Sector 00000:00004
TR Track 00000:00004
Read Done 00000:14990
Read 0:03
TR Sector 00000:00004
TR Track 00000:00004
Read Done 00000:01431
Read 0:05
TR Sector 00000:00004
TR Track 00000:00004
Read Done 00000:00996 CSR/000040 ; SR/000000 ; ER/000000
Program completed.
сама процедура форматирования стала проходить очень забавно, сейчас залью видео.
- - - Добавлено - - -
https://goo.gl/photos/utDqDxYVmQifcpCw7
- - - Добавлено - - -
нулевая дорога отформатилась, проверил чтеним через сорудх
- - - Добавлено - - -
дальше там где головка прижималась, имеем ошибку 150 а где нет - 120
- - - Добавлено - - -
даже две дороги форматит первые... а дальше 150 ошибка вразнобой...
- - - Добавлено - - -
надо походу репозиционирование через 0 делать, регистр дорожки сбрасывается походу.
Patron, а каким образом сейчас позиционирование на дорожку производится? Мы отдаем контроллеру сами номер дорожки и он на нее едет? Т.е. получается что после форматирования дорожки мы даем ему проехать на n+1 и он едет якобы от нуля? Т.е. посто добавить после форматирования команду на 0? Верно?) Или сброс контроллера нужен?
Ну и походу мне понятно почему форматирование во втором кармане не работало - видимо контроллер этого не умеет..
При сбросе контроллера он читает первый сектор на первой дорожке нулевого привода, поэтому для перехода на нулевую дорожку INIT не нужен - достаточно команды позиционирования.
Командой позиционирования в контроллере считается команда чтения. Какую дорожку передали команде чтения - такую потом контроллер и отформатирует. Если диск уже форматирован - команда чтения найдёт любую дорожку с любого места. Если диск не форматирован, возможно - дорожки надо каждый раз считать с нулевой.
Теперь понял, спасибо! Я сегодня еще полчаса буду на складе, если есть у вас время запилить версию сегодня, значит можно будет попробовать проверить на железе :)
.
В новой версии программы: COPYDX.SAV ( v1.2 ) - внесены следующие изменения:
1. Теперь при форматировании позиционирование на следующую дорожку производится через нулевую дорожку.
Patron, проверил, не репозиционирует.... Доходит где-то до 4-5 дороги, пару раз клацает бошкой и пишет DX controllwe error, 48 sec
Похоже, что подорожечное форматирование годится только для уже форматированных дисков. Для чистых дисков, видимо - надо активировать в контроллере режим форматирования диска.
Хреново, весьма хреново - пульта то у меня нет... Блин, чувствую что придется часть пульта на макетке собирать блин...(((
Но можно ещё попробовать сбрасывать контроллер перед форматированием дорожек 2..76.
как вариант, «дурить» контроллер. Пихаем хорошую дискету, позиционируемся, потом я дискетку меняю, форматируем, меняю обратно, позиционируем дальше... Попробую ка я уже считанный диск отформатировать так...
- - - Добавлено - - -
Мне вот непонятно почему он на 0 дорожку не уходит, хотя должен перед каждой следующей дорогой... Мб что не так делаем всетаки?
- - - Добавлено - - -
на хорошем диске поведение такое же...
Перезалил версию со сбросом контроллера перед форматированием дорожек 2..76.