:: СОДЕРЖАНИЕ НОМЕРА
:: Газетные рубрики
:: АВТОРЫ
:: Поиск
:: Поддержка проекта
Webmoney:
|
:: №23 (24.02.2005) Просмотров: 9472
Автор: Евгений Илясов. Рубрика: Читатель читателю. Номер: №23 (24.02.2005). «Рабовладение» в iS-DOS на SinclairКак известно, спецификация IDE (Integrated Drive Electronics) для интерфейса ATA (AT Attachment) предусматривает подключение и последующую совместную работу двух устройств с интегрированным IDE-контроллером. А рaсширенная спецификация E-IDE (Enhanced IDE) допускает совместное функционирование до четырех IDE-устройств. Но четыре IDE-устройства для Sinclair-совместимой машины, - как правило, ненужная жлобская роскошь. А вот для двух устройств, -винчестера и CD-привода или двух винчестеров, - вполне могут найтись целесообразные и оправданные применения.Реальный, проработанный и программно поддержанный вариант использования двух винчестеров IDE в одной упряжке предоставляет для пользователей Операционная Система iS-DOS. Причем достигается это использование через абсолютно стандартный контроллер IDE-Drive разработки (c)Nemo, без каких-либо переделок или доработок. По большому счету, контроллер лишь предоставляет возможность обмена данными с IDE-устройством. А на одном шлейфе могут быть одновременно подключены и работать два IDE-устройства. И если оба эти устройства - винчестеры, то все аппаратные изменения сводятся к правильной установке перемычек-»джамперов» (Jumper), которые задают логику работы накопителей. Один винчестер должен быть выставлен перемычками на нем как «Master», а другой, естественно, как «Slave» («раб»). Как правило, положение перемычек должно быть указано для каждого режима на наклейке, на корпусе винчестера. Хотя это и необязательно в старых моделях. Встречались, например, винчестеры Seagate, у которых вообще ничего не указано на наклейке. В таких случаях приходится подбирать положение перемычек экспериментальным путем. Хорошо, если там всего лишь одна перемычка, а если две или три - тогда их надо комбинировать. Но особых проблем быть, по идее, не должно. Единственная проблема, которая может встретиться -это если неверно выставить один из винчестеров перемычками, - тогда он будет конфликтовать со вторым и в итоге откажутся работать оба. Таким образом, вопрос только в программной поддержке. Второй винчестер выбирается именно программно. Среди регистров винчестера, доступных для программирования через IDE-контроллер, есть так называемый SDH-регистр. Изменяя маску, накладываемую на содержимое этого регистра, можно менять IDE-устройство, к которому будет происходить обращение через IDE-контроллер. Используя нужную маску SDH-регистра, можно переделать iS-DOS’ный драйвер винчестера таким образом, что этот драйвер станет работать со «slave»-накопителем. Так что, при необходимости, можно установить два винчестера и работать с ними, - с каждым через свой драйвер. Это может найти применение, скажем, для быстрого копирования с одного винчестера на другой. Или на постоянной основе - для использования второго накопителя в качестве архивного, для хранения нужной, но редко используемой информации. Необходимо уточнить, что в системе для нормальной работы нужно установить или один винчестер «Master» или два винчестера - «Master» и «Slave». Один винчестер «Slave» работать не станет. Возможно, это такая схемотехничесткая реализация контроллера (c) Nemo, или изначальная особенность спецификации/интерфейса IDE/ATA. Но в любом случае, вряд ли это можно считать серьезной помехой для использования винчестера «Slave» под iS-DOS на Sinclair. В качестве примера использования маски SDH-регистра для обращения к «Slave»-винчестеру здесь приводится комментированный ассемблерный текст сервисной утилиты, созданной на основе усовершенствованной версии «stanby.com» (см., например, заметку «Тормоз для винчестера» в 16 номере «Абзаца»). Формат исходника - iS-DOS Assembler. ;SB_EXIT.COM ;Программа для торможения одного или двух винтов, выхода в Basic-48, TR-DOS, Монитор «JV KRAMIS» или в главное меню (аналогично нажатию кнопки Краткое описание sb_exit.com, версия 1.73 от 15.11.2004. Данная программка тормозит до лучших времен один или два винчестера, если, конечно, они у вас есть (сначала тормозится «master», а за ним «slave»), а также обеспечивает выход, в зависимости от использованных ключей, в главное меню компьютера (аналогично нажатию кнопки RESET), или в TR-DOS, или в BASIC-48, или в монитор «JV KRAMIS» (если, конечно, у вас компьютер KAY или модернизированный SCORPION ZS-256 с двумя ПЗУ) из системы iS-DOS - как Classic, так и Chic. Программа работоспособна в Chic’е на компьютерах KAY, SCORPION и PROFI, а в Classic’е и на всех остальных. Срабатывают тормоза и выезд на обочину любым известным в iS-DOS способом: по «горячей» клавише, из меню и т.д. Функции ключей. Ключ /s - тормоз винчестера перед выполнением основной функции. Ключ /r - выход в главное меню (полный сброс - RESET); одновременно с ключом /s - с тормозом винчестера. Ключ /t - выход в TR-DOS с запуском программы «boot» на диске «A»; одновременно с ключом /s - с тормозом винчестера. Ключ /b - выход в BASIC-48; одновременно с ключом /s - с тормозом винчестера. Ключ /m - выход в монитор «JV KRAMIS»; одновременно с ключом /s - с тормозом винчестера. Сначала отрабатывается ключ /s (если он используется, то он должен стоять первым), а затем выполняется выход в указанном направлении. После отработки ключа /s следует команда установки на свое место нулевой банки ПЗУ, а затем отрабатывается команда, заданная вторым ключом: - при выходе в главное меню происходит полный сброс компьютера, аналогичный нажатию кнопки - при выходе в TR-DOS выполняется команда «RANDOMIZE USR 15619: RUN «boot», аналогичная такой же в «EXIT_TRD.COM». Для того, чтобы успеть сменить диск, если дисковод - системное устройство, выводится меню и программа ожидает нажатия клавиши: - при выходе в BASIC-48 осуществляется переход на адрес #0 ROM BANK 1, установленный по умолчанию в iS-DOS. - при выходе в монитор «JV KRAMIS» осуществляется переход на адрес #0 ROM BANK 0, в котором зашит «теневик». Ключи можно задавать в виде /s/b или в виде /s /b, программе это безразлично. Регистр букв также не имеет значения. Пример: Q:BOOT\sb_exit /s/b (выход в BASIC-48 с тормозом винта). Если ключей нет ни одного, работа программы почти ничем не отличается от работы программы standby.com и во многих случаях может ее заменить. Для устойчивого «торможения» винчестера и исключения его перезапуска при выходе из программы обратно в iS-DOS (когда, например, курсор находится в подкаталоге пятого-шестого уровня вложенности) лучше организовать вызов программы sb_exit с ключом /s через короткий bat-файл: *L- Q:SHELL\cache /29 CAT S: Q:SHELL\pan /7 CAT S: Q:SHELL\pan /7 Q:UTIL\sb_exit /s * * * При написании статьи использовались материалы: А. Леонтьева (г. Санкт-Петербург), С. Багана (г. Минск), А. Карныгина (г. Балашов), А. Кубрака и Е. Борисова (г. Старица). |