ZXNet эхоконференция «zxnet.pc»


тема: чтение zx-дисков в писюке



от: Kirill Frolov
кому: All
дата: 24 Mar 2002
Hемедленно нажми на RESET, All! Hе читались в пц никакие спектрумовские диски отформатированные командой FORMAT в тр-дос. Разобрал дисковод и передвинул датчик индексного отверстия ближе к морде дисковода -- теперь успешно читаются все диски которые читаются и на спектруме. Получилось пофиксить таким образом 2 дисковода: TEAC-fd55a и электроника-MC5311. Датчик (фотодиод) находится сверху, у TEAC на той плате где и светодиод индикации обращения (плата крепится винтами и может перемещаться вдоль оси перемещения головок), на 5311 это отдельный элемент крепящийся винтом (тоже допускается перемещение). Перемещать фотодиод нужно до того как диски не начнут читаться + ещё немного, а не до упора, когда индексный импульс пропадает вообще. Остаётся вопрос: можно-ли настроенные таким образом дисководы устанавливать в спектрум? Стал ли индексный импульс короче, или же он сместился по времени? В первом случае всё ок, а во втором случае диски записанные на таком дисковода установленном в спектрум прочитать на пц будет непростой задачей. Было бы неплохо, если бы кто-нибудь этот вопрос разрешил путём вышеописанной настройки и последующей проверкой форматом на спеке и чтением на пц. Мне этого не сделать -- спек не работает (доапгрейдился... кулибинство маздай... Hемо был прав...) Для 3.5 дисководов настраивать нечего (а может и есть, просто я не знаю?) Проверять чтение дисков в linux можно таким скриптом (при наличии fdutils): === Cut === #!/bin/bash # 80 too slow tracks=16 drive=0 sides=2 sectors=16 tries=2 fdrawcmd recalibrate 0 2> /dev/null for ((cyl=0; cyl /dev/null a=($(fdrawcmd rate=2 repeat=$(($sectors*$tries)) readid $dsel 2>&1)) p=(0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0) total=0 for ((n=0; n<${#a[*]}-1; n++)); do case ${a[n]} in 0:) st0=${a[((n=$n+1))]};; 1:) st1=${a[((n=$n+1))]};; 2:) st2=${a[((n=$n+1))]};; 3:) c=${a[((n=$n+1))]};; 4:) h=${a[((n=$n+1))]};; 5:) s=${a[((n=$n+1))]} ;; 6:) sz=${a[((n=$n+1))]} case $sz in 0) sz=128 ;; 1) sz=256 ;; 2) sz=512 ;; 3) sz=1024 ;; esac if [ ${p[0x$s]} == 0 ]; then echo -e "$s $sz $c $h $st0 $st1 $st2" p[0x$s]=1 ((total++ )) fi ;; esac done echo total: $total sectors on track $cyl side $head done done fdrawcmd recalibrate 0 2> /dev/null === Cut ===




Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Похожие статьи:
Хит-парад - 10 лучших программ,по итогам продаж фирмы Welcome.
Презентация - новая адвентюрная игра "Тайна капитана Шелтона".
Художественная литература - Фредерик Браун: "Письмо Фениксу"
Анкета - Вreeze/Fishbone.
Реклама - Реклама и объявления.

В этот день...   8 мая