Важная информация

User Tag List

Показано с 1 по 10 из 10

Тема: Как глушить дисковод

  1. #1
    Member Аватар для Krenon
    Регистрация
    16.04.2007
    Адрес
    Санкт-Петербург
    Сообщений
    67
    Благодарностей: 0
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию Как глушить дисковод

    Если кто не знает это делается так: ВГ подаётся любая команда I типа с битом h=0 (модификатор поднять головки). Потом даётся пауза, чтобы головки поднялись, двигател заглох. Перед тем как начнётся перепозиционирование подаётся принудительное прерывание. Величина паузы - в XAS'е три HALT'а, но на практике хватает одного.
    C Nonsense in BASIC, 0:1

  2. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #2
    Guru Аватар для newart
    Регистрация
    19.01.2005
    Адрес
    Санкт-Петербург
    Сообщений
    10,947
    Благодарностей: 1520
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Krenon Посмотреть сообщение
    Если кто не знает это делается так: ВГ подаётся любая команда I типа с битом h=0 (модификатор поднять головки). Потом даётся пауза, чтобы головки поднялись, двигател заглох. Перед тем как начнётся перепозиционирование подаётся принудительное прерывание. Величина паузы - в XAS'е три HALT'а, но на практике хватает одного.
    Может тебе стоит возродить Lamergy или что то вроде того (Krenongy?) и вести там раздел "хочу все знать"?
    А не плодить темы, от которых ощущение будто автор общается сам с собой.

  4. #3
    Guru
    Регистрация
    25.01.2005
    Адрес
    Miass, Chelyabinsk region
    Сообщений
    4,086
    Благодарностей: 924
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    лучше глушить дисковод динамитом как рыбу

    а вообще, надежнее сделать out(#ff),0 в тр-досе и никаких хальтов

  5. #4
    Master
    Регистрация
    27.04.2005
    Адрес
    Москва
    Сообщений
    869
    Благодарностей: 3
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от psb Посмотреть сообщение
    а вообще, надежнее сделать out(#ff),0 в тр-досе и никаких хальтов
    Только после этого надо регистры дорожки и сектора взад выставлять и делать рекалибровку, по хорошему если.
    И еще замечание: если в дисководе нет диска, то мотор не выключается. Чтобы его выключить, в порту #FF предусмотрен бит, который имитирует выдачу HLT на ВГ93. В TR-DOS есть подпрограммка хитрая, она на него серию импульсов выдает. Адрес не помню, она вызывается перед входом в командный процессор. Там выбирается текущий дисковод, даются импульсы, затем зачем-то выбирается дисковод D, снова даются имульсы. Нарушение этого алгоритма не канает - двигло не выключается.

  6. #5
    Guru
    Регистрация
    25.01.2005
    Адрес
    Miass, Chelyabinsk region
    Сообщений
    4,086
    Благодарностей: 924
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Sonic Посмотреть сообщение
    И еще замечание: если в дисководе нет диска, то мотор не выключается.
    это при out(#ff),0 не выключается?) ага, ага при таком выключается всё! сложнее включить потом (пример тому - magic) но как-то можно, сходу не помню как..

    а в тр-дос, кажется, не на всех контроллерах дисководы выключаются.. у меня выключался тлько по прошествии 15 индексных импульсов.

  7. #6
    Master
    Регистрация
    27.04.2005
    Адрес
    Москва
    Сообщений
    869
    Благодарностей: 3
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Включить не так сложно:
    1) Отпустить Reset.
    2) Подождать - не знаю сколько но это ключевой момент, посему чем дольше тем лучше.
    3) Установить в регистре дорожки число, соответствующее реальности. Сделать это можно двумя способами: либо подать команду "чтение индекса" и посмотреть считанный заголовок, либо подать команду "рекалибровка" AKA "Восстановление" в старой литературе, при этом башка гарантированно отъедет на 0 трек и в регистре гарантированно встанет 0.
    Прикол с Magic заключается в отсутствии необходимой паузы (2). Загрузка порта #FF там есть (выбираем верхнюю сторону диска), и затем следует первая команда - рекалибровка. К тому моменту, как подается эта команда, ВГшка не успевает выйти из ступора и тупо повисает.
    По поводу индексных импульсов - да, бит HLT порта #FF через диод заведен еще и на IP. Смысл - эмуляция индексных импульсов. Как раз для остановки дисковода при отсутствии диска. Смысл выбора дисковода D:, насколько я понимаю, заключается в том, чтобы выбрать дисковод, которого скорее всего нет, и из-за этого линия HLT будет болтаться в "1". Нетрудно догадаться, что при отсутствии диска в 5.25" приводе HLT всегда будет висеть в "0" (оптопара постоянно засвечена).
    Помнится я подключил дисковод D: и получил интересную картину: при попытке остановки дисковода на мгновение помигивает светодиод дисковода D:, затем снова переходим на текущий, двигатели продолжают вращаться. Т. о. при наличии всех четырех приводов и при отсутствии во всех приводах дисков, алгоритм работать не будет.

  8. #7
    Guru
    Регистрация
    25.01.2005
    Адрес
    Miass, Chelyabinsk region
    Сообщений
    4,086
    Благодарностей: 924
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    о, прикольно
    спасибо за детальные разьяснения

  9. #8
    Member
    Регистрация
    14.02.2005
    Адрес
    Владивосток
    Сообщений
    111
    Благодарностей: 4
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    припоминаю что мотор останавливается если выбрать другой (даже не существующий) дисковод а потом вернуться к текущему

  10. #9
    Master
    Регистрация
    27.04.2005
    Адрес
    Москва
    Сообщений
    869
    Благодарностей: 3
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от mishutka Посмотреть сообщение
    припоминаю что мотор останавливается если выбрать другой (даже не существующий) дисковод а потом вернуться к текущему
    Вряд-ли. Операция смены текущего дисковода на ВГ93 вообще никак не влияет, ибо проходит мимо нее. Скорее всего ты путаешь, или имеет место быть какой-нибудь побочный эффект.

  11. #10
    Master Аватар для Grand
    Регистрация
    10.04.2005
    Адрес
    Сибирь
    Сообщений
    697
    Благодарностей: 137
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Во многих моих программах используется метод снятия выбора дисковода с использованием процедуры из ПЗУ TR-DOS, например в G's Boot. Исходники G's Boot'а - на ZX Open Source.
    Последний раз редактировалось Grand; 05.06.2007 в 01:42.
    Если в каком-либо моем посте перестала работать гиперссылка или показываться картинка, напишите мне об этом в личном сообщении.

    Grand's - сайт об электронно-вычислительной технике

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Опять про дисковод...
    от fenix в разделе Внешние накопители
    Ответов: 11
    Последнее: 15.04.2006, 14:36
  2. Куплю дисковод от C64
    от Jubei в разделе Барахолка (архив)
    Ответов: 0
    Последнее: 13.02.2006, 13:20
  3. Дисковод 5.25 для spectrum
    от nixdorf2005 в разделе Барахолка (архив)
    Ответов: 16
    Последнее: 29.01.2006, 19:35
  4. Дисковод
    от Явм в разделе Внешние накопители
    Ответов: 6
    Последнее: 24.04.2005, 20:07

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •