ZX Power
#02
24 мая 1997 |
|
Ликбез - Борьба контроллеров или о том, как я ломал 800К дискеты.
(C) Cobra ________________________________ Всем синклеристам, которые перекачивали файлы с компьютеров клона IBM известна так называе- мая проблема 800К дискет - на ZX при их чтении постоянно возника- ет злополучная ошибка: disk error tr xx sec 10, и как обидно бывает, когда после стольких му- чений добытая информация отказы- вается читаться и все из-за то- го, что диск был отформатирован не на 720К, а на 800К, причем, интерестно, что: 1.Если диск был отформати- рован на Спектруме,то ника- ких проблем с чтением не возникает !!! 2.При чтении IBM совмести- мыми компьютерами синкле- ровских дискет, которые предварительно отформатиро- вали в TR-DOS, также возни- кают ошибки,уже другого ха- рактера - не читается пер- вый на дорожке сектор !? Но если такой диск отреставри- ровать, например, в RDS, то никаких проблем больше не возникает... Давайте разберемся,почему это присходит.После анализа програм- мой RDS удалось выяснить,что наш злополучный сектор, тот, что под номером 10, имеет метку + + ? ,а это значит следующее - заголовок сектора есть, сам сектор есть,но вот беда - он не заканчивается, контрольной суммы сектора нет! Хмммм, интерестно... Дальше, прочитав трек с нашего диска ко- мандой read track, я обнаружил самое интерестное - наш любимый сектор не заканчивается вовсе!!! Прочитав его до половины,команда read track обрывает свою работу. Известно, что команда read track начинает чтение с приходом индексного импульса (это когда отверстие в дискете совпадает с отверстием в конверте диска), читает всю дорожку и по приходу следующего индексного синхроим- пульса прекращает чтение. Следо- вательно, синхроимпульс приходит в то время, когда читается сек- тор... И очевидно, контроллер формирует в этот момент ошибку чтения... И тут напрашивается банальное решение - заклеить ин- дексное отверстие вообще! Просто взять и заклеить, чтобы контрол- лер не знал, когда приходит ин- дексный синхроимпульс! Р А Б О Т А Е Т ! ! ! Диски читаются отменно! А всего делов то было - синк- леровский контроллер синхронизи- руется по началу индекса, а IBM-овский - по концу! Отсюда и все неприятности. Происходит не- большое смещение, в результе ко- торого синклер не читает послед- ний сектор, а IBM - первый (из- вестно,что TR-DOS формирует пер- вый сектор с отступом от начала дорожки меньшим, чем дисковые утилиты, такие как RDS...). Так что можно смело говорить, что одной проблеммой на синклере стало меньше - я вот, пока наби- вал этот текст, слушал MOD-ик, который загрузил с такого вот диска... В продолжении рассмотрения вопросов о загадках TR-DOS хочу обратиться к читателям: если кто знает какие-то подробности из жизни TR-DOS, например почему команда read track в определен- ных случаях не прекращает чтение даже по приходу индексного синх- роимпульса, просьба писать в штаб-квартиру редакции по адре- су, указанному в разделе "Авто- ры". ________________________________
Другие статьи номера:
Похожие статьи:
В этот день... 21 ноября