┌──────────────────────────────┐
│ │
│ АВТОРСКАЯ РАЗРАБОТКА │
│ │
└──────────────────────────────┘
Music by ZET
С.Зонов, А.Ларченко
О КОНТРОЛЛЕРЕ SMUC
(HDD и IBM-периферия)
Данная статья представляет из
себя сокращенное описание разра-
ботки фирмы Скорпион (Санкт-Пе-
тербург) - контроллера SMUC. С
момента поступления данного кон-
троллера в продажу прошло уже
более года, интерес к нему по-
стоянно растет, причем как со
стороны пользователей компьюте-
ра Scorpion, так и со стороны
пользователей других Spectrum-
совместимых компьютеров. О том,
как доработать свой компьютер
до совместимости со Скорпионом,
подробно описано в журнале ZX
РЕВЮ N 7-8 за 1996 год. Цель
данной статьи - более наглядно
познакомить читателей с тем, что
из себя представляет контроллер
SMUC, как он подключается к ком-
пьютеру, как через него происхо-
дит подключение жесткого диска,
как происходит работа с жестким
диском в системе TR DOS и IS
DOS, хотя в последней системе
работа с HDD практически ничем
не отличается от работы с элек-
тронным диском (обычно диск C).
НАЗНАЧЕНИЕ КОНТРОЛЛЕРА
Контроллер SMUC предназначен
для подключения к компьютеру
Scorpion ZS-256 (или любому Spe-
ctrum-совместимому компьютеру):
- накопителей на жестких дис-
ках (HDD), оснащенных интерфей-
сом IDE, и позволяет работать с
ними в системах TR DOS, IS DOS,
CP/M;
- разнообразных периферийных
плат от компьютера IBM PC XT,
таких как, например, Hayes-моде-
мы со скоростью передачи от 1200
до 14400 Кбод, звуковые карты
различных типов, программаторы и
многие другие IBM-совместимые
устройства.
Кроме этого, контроллер осна-
щен микросхемой энергонезависи-
мой памяти (NVRAM) объемом 2
Кбайта, предназначенной для сох-
ранения различных настроек ком-
пьютера, параметров HDD, пере-
менных Теневого Сервис-Монито-
ра и т.д. В контроллере преду-
смотрена установка микросхемы
энергонезависимых часов (типа
M146818, DS1287, DS12887,512ВИ1)
и контроллера прерываний i8259
или 1810ВН59а (в стандартной
поставке данные микросхемы не
установлены).
Для наиболее успешной и
производительной работы компью-
тера желательно подключение дан-
ного контроллера к компьютеру
Scorpion ZS 256 Turbo+, хотя
возможна и работа контроллера
с нетурбированными компьютерами
Scorpion 256, а также с другими
Spectrum-совместимыми компьюте-
рами (при выполнении необходи-
мых доработок). Программная под-
держка контроллера находится в
Профессиональном ПЗУ (ПрофПЗУ)
компьютера Scorpion (объем Проф-
ПЗУ - от 128 Кб до 512 Кб). Фир-
ма Скорпион переработала содер-
жимое ППЗУ и, начиная с версии
4.0, возможна его работа на раз-
личных вариантах Spectrum-совме-
стимых компьютеров.
Конструктивно контроллер вы-
полнен на печатной плате разме-
ром 102x72 мм.
Потребляемый контроллером ток
не более 300 мА.
Установка часов
реального времени (CMOS-часов)
и контроллера прерываний
В стандартном варианте SMUC-
контроллер поставляется без мик-
росхемы часов реального времени
(MC146818) и микросхемы контрол-
лера прерываний (i8259a), но при
желании пользователю необходимо
только вставить эти микросхемы в
соответствующие панельки на пла-
те контроллера. Все необходимое
для работы этих микросхем на
плате контроллера предусмотрено,
в том числе и энергонезависимый
генератор тактовых импульсов для
часов, и схема переключения на
резервное питание.
Микросхема MC146818 может
быть заменена советским анало-
гом - 512ВИ1, а также импортны-
ми микросхемами других фирм-
производителей. Все они имеют
одинаковый корпус на 24 вывода,
и могут отличаться лишь назва-
нием. Для обеспечения работы ча-
сов реального времени на период
выключения компьютера, необходи-
мо использовать источник резер-
вного питания +5 вольт, подклю-
чаемый через разъем X7. Потреб-
ление тока от этого источника -
доли микроампера, поэтому можно
использовать любую подходящую
батарейку. Кроме этого, в па-
нельку для ИМС часов можно вста-
вить ИМС фирмы Dallas - DS1287 и
DS12887. Эти микросхемы уже име-
ют встроенный генератор импуль-
сов и источник резервного пита-
ния. Фирмой-изготовителем гаран-
тируется надежная работа источ-
ника в течение 10 лет. При ис-
пользовании данных микросхем до-
полнительного источника, подклю-
чаемого через разъем X7, не тре-
буется. Следует помнить, что на-
личие или отсутствие ИМС часов
никак не влияет на работу кон-
троллера с HDD. Все установки
параметров HDD и другие пере-
менные, используемые Теневым
Сервис-Монитором, и назначаемые
пользователем, хранятся в ИМС
энергонезависимой памяти (NV-
RAM), устанавливаемой на всех
контроллерах. Никаких дополни-
тельных источников для работы
NVRAM не требуется.
Микросхема контроллера преры-
ваний при работе с HDD в настоя-
щее время не используется, и ее
отсутствие никак не влияет на
работу контроллера. Она предназ-
начена, прежде всего, для рабо-
ты с различной IBM-периферией,
например HAYE's модемами. Можно
использовать ИМС i8259A, или со-
ветский аналог 1810ВН59А. Не ре-
комендуется использовать микро-
схему 580ВН59.
Требования
к источнику питания
Контроллер потребляет очень
незначительный ток от источника
питания компьютера и, как прави-
ло, не требует "умощнения" пос-
леднего. Но сам накопитель HDD,
особенно если он достаточно
"древний", может потреблять зна-
чительный ток как по +5 В, так и
по +12 В (до 2-3 А в режиме
обычной работы и еще больше в
момент пуска). Поэтому необходи-
мо убедиться, что источник "обе-
спечивает" необходимое напряже-
ние: +5 В+5%, +12 В+5%, в проти-
вном случае необходимо заменить
источник питания на более мощ-
ный. При выборе источника сле-
дует также учесть, что если пла-
нируется подключать IBM-перифе-
рийные платы, то следует зало-
жить для них запас по мощности.
Для расчетов можно ориентировоч-
но принять, что потребление то-
ка по дополнительным источникам
питания следующее: +5 В - до 1,5
А; -5 В, -12 В, +12 В - до 0,5
А.
РАБОТА С ЖЕСТКИМ ДИСКОМ
Пожалуй, наиболее важным и
ожидаемым приспособлением на
универсальном контроллере внеш-
них устройств SMUC является IDE-
интерфейс жесткого диска. Этот
интерфейс позволяет одновремен-
но подключить до двух устройств,
причем на сегодняшний день этим
популярным интерфейсом снабжают-
ся не только жесткие диски, но и
некоторые другие устройства,
например, приводы дисков CD ROM.
Программное обеспечение Тенево-
го Монитора рассчитано пока
только на обслуживание одного
жесткого диска, но аппаратно
контроллер SMUC обеспечивает все
возможности интерфейса IDE, ре-
ализация которых, естественно,
будет осуществлена в будущем.
Этот раздел описывает работу
с жестким диском, подключенным к
контроллеру SMUC. Собственно,
работа с диском немногим слож-
нее, чем с дискетой и дисково-
дом, и, пожалуй, главным отли-
чием является "несменяемость"
"дискеты" и на порядок больший
ее объем.
Начинать работу необходимо,
естественно, с подключения жес-
ткого диска ("вставить диске-
ту"). Затем нужно определить па-
раметры устройства (вспомните,
что и при работе с дискетой
TR-DOS сначала пытается опреде-
лить ее формат - число дорожек и
сторон). Однако, в отличие от
дисковода, эта процедура для
жесткого диска несколько слож-
нее, но зато должна выполняться
только один раз. На этом этап
подключения заканчивается, и
жесткий диск необходимо разме-
тить - то есть создать инфор-
мационные структуры, разделить
большой объем диска на приемле-
мые для работы части. Сразу ска-
жем - понятие "форматирование"
для жестких дисков с интерфей-
сом IDE отсутствует, эти устрой-
ства выходят отформатированными
с завода-изготовителя и больше в
своей "жизни" никогда формат не
изменяют. Ну и, наконец, - соб-
ственно работа с данными на жес-
тком диске.
Порядок изложения материала в
этом разделе построен так, что-
бы вы максимально быстро, и в то
же время правильно и последова-
тельно, включили диск в работу.
Подключение жесткого диска
Подключение жесткого диска с
интерфейсом IDE состоит из трех
основных этапов: аппаратное под-
ключение, программная идентифи-
кация и тестирование диска.
Аппаратное подключение HDD
Аппаратное подключение аппа-
ратуры, пожалуй, самое простое и
в то же время самое ответствен-
ное действие. При ошибках возмо-
жен выход из строя не только
жесткого диска и контроллера,
но и компьютера. Поэтому будьте
очень внимательны.
Контроллер SMUC вставляется в
разъем платы компьютера так,
чтобы детали контроллера "смот-
рели" на детали платы. Контрол-
лер соединяется с жестким дис-
ком специальным 40-жильным плос-
ким кабелем так, чтобы 1 контакт
совпал и на контроллере, и на
жестком диске (на кабеле крайний
провод, соответствующий 1 кон-
такту, обычно промаркирован).
Питание подается на жесткий диск
через специальный разъем, анало-
гичный такому же на дисководе.
После всех соединений можно
включить питание; на экране ком-
пьютера сразу же должна поя-
виться знакомая надпись "fast
test of computer" (в последних
версиях ТМ первой появляется
надпись об авторских правах), и
далее несколько сообщений о най-
денных (или не найденных) ус-
тройствах контроллера SMUC. Пос-
ле подачи питания жесткие диски
различных фирм и моделей ведут
себя по-разному. Но характерным
является небольшая (не более се-
кунды) пауза, затем звук взле-
тающего самолета в миниатюре (у
современных моделей он почти не
слышен), это раскрутка двигате-
ля самих дисков ("блинов"). Да-
лее происходит "рекалибровка" и
внутреннее тестирование механиз-
ма магнитных головок, выража-
ющееся в легком (а у старых
моделей - довольно-таки громком)
"похрюкивании". Вся операция по
автотестированию происходит при
каждом включении питания (и,
кстати, независимо от подключе-
ния к контроллеру), и длится от
5-10 до 30 секунд.
Если после включения напряже-
ния жесткий диск "молчит", то
либо ему не хватает мощности ис-
точника питания (это можно про-
верить, замерив тестером напря-
жение +5 и +12 В), либо непра-
вильно (наоборот) подключен ка-
бель, соединяющий жесткий диск и
контроллер. Недостаточная мощ-
ность источника питания может
служить причиной нестабильной
работы диска (особенно это спра-
ведливо для старых моделей, ко-
торые могут потреблять в им-
пульсе ток до нескольких ампер
по 12 вольтам; для сравнения -
новые современные жесткие диски
могут потреблять меньше дисково-
да для гибких дисков).
Теперь посмотрим на экран.
Если, несмотря на "потуги" жес-
ткого диска, на экране сразу
появляется надпись "Hard disk
not found", то, опять-таки, ско-
рее всего, "перевернут" кабель
или недостаточно питания для ин-
терфейса жесткого диска (интер-
фейсная часть любого жесткого
диска, как правило, работает да-
же при выявлении ошибок авто-
тестирования и сообщает о них
контроллеру). Возможна, впрочем,
полная неработоспособность всей
электроники диска.
Программное подключение
Если интерфейсная часть в по-
рядке, то во время процесса ав-
тотестирования жесткого диска
компьютер "подвисает", ожидая
"ответа" от устройства, а после
получения этого ответа пытается
определить параметры диска. Для
получения этих параметров произ-
водится специальная процедура,
которая также требует некоторо-
го времени. Общее время при пер-
вом включении жесткого диска не
должно превышать нескольких ми-
нут. Если это время больше, зна-
чит, диск не в порядке.
Успешно опознанный жесткий
диск выдает на экран компьютера
надпись вида "IDE/AT 42 MB Hard
disk found", где вместо числа 42
будет стоять определенный прог-
раммой объем вашего диска. Если
этот объем не соответствует дей-
ствительному объему диска, зна-
чит, этот диск неправильно сооб-
щает о себе программе и требует
ручной настройки параметров, о
чем чуть ниже. Далее выводятся
три строки с информацией фирмы-
производителя. Первая строка,
как правило, содержит осмыслен-
ное имя фирмы или модели, две
другие - серийный номер и дату
производства модели, но каждый
производитель волен вписывать,
что хочет. Монитором не предус-
мотрены какие-либо задержки для
рассматривания этих надписей,
если они вас все-таки заинте-
ресовали, нажмите (и не отпус-
кайте) кнопку "Сброс", но после
этого обязательно произведите
"холодный" запуск компьютера
(сброс с удерживаемой на клавиа-
туре клавишей "Стрелка влево").
Если внутренние тесты и ав-
тоидентификация жесткого диска
прошли успешно, то компьютер вы-
ходит в стандартное меню ОС Бей-
сик. Дальнейшие действия по под-
ключению жесткого диска необхо-
димо проводить в Теневом Монито-
ре (напоминаю, что вход в ТМ
осуществляется кратковременным
нажатием на кнопку Magic).
Если у вас старый и медлен-
ный диск, то, возможно, он не
успеет выполнить все внутренние
тесты ко времени проверки его
стартовой программой монитора; в
этом случае на экране компьюте-
ра вместо вышеприведенных сооб-
щений возникнет какое-либо сооб-
щение об ошибке (скорее всего
"Hard disk data not ready" или
"Busy not found"). В этом слу-
чае попробуйте, не выключая пи-
тания, произвести повторный "хо-
лодный" старт компьютера. Если
он не поможет (продолжают появ-
ляться сообщения об ошибке), то
проверьте еще раз аппаратное
подключение контроллера SMUC и
жесткого диска. Возможно, что с
таким экземпляром диска необхо-
дима ручная установка парамет-
ров, либо он не сможет работать
вообще.
Автоматическая идентификация
Итак, мы в меню Теневого Сер-
вис-Монитора. Выбирайте пункт
меню "Hard disk utility", а в
нем "Set Up".
Как понятно из названия, ав-
томатическая идентификация жес-
ткого диска происходит автомати-
чески. Собственно, первая авто-
матическая идентификация уже
произошла (см. предыдущий раз-
дел). Или, по крайней мере, пы-
талась произойти. Результаты
процесса отображаются в пунктах
меню Cylinders, Head и Sector,
которые показывают "геометричес-
кие" параметры жесткого диска,
соответственно число цилиндров,
головок и секторов. Эти парамет-
ры в идеальном случае должны
соответствовать паспортным пара-
метрам жесткого диска. Вы може-
те еще раз, "на всякий случай",
выполнить процедуру автоконфигу-
рирования жесткого диска, выб-
рав пункт "Auto detection hard
disk". "Геометрические" размеры
должны оставаться стабильными и
неизменными.
Итак, если все в порядке,
данные найденные совпадают с
данными ожидаемыми, то можно
разрешить идентификацию при
старте (она разрешена по умолча-
нию, пункт меню "on start" в
состояние ON), и сразу перехо-
дить к тестированию жесткого
диска. В противном случае пере-
ходите к ручной идентификации
диска.
Ручная настройка параметров
Собственно, вы должны ввести
в пунктах меню "Hard disk utili-
ty/Set Up" реальные "геометри-
ческие" размеры вашего жесткого
диска. Это число цилиндров, го-
ловок и секторов. Эти параметры
иногда приводят на корпусе са-
мих дисков; если их нет, то об-
ратитесь к продавцу, всучившему
вам это чудо.
Бывает, что параметры, счи-
танные из жесткого диска, не
соответствуют действительности,
хотя по всем признакам автоиден-
тификация прошла (быстро и без
ошибок).
Итак, вы ввели реальные пара-
метры жесткого диска. Теперь
необходимо позаботиться, чтобы
стартовая программа Монитора не
проводила автоидентификацию при
"холодном" сбросе компьютера.
Для этого переведите пункт "on
start" в состояние OFF.
Сохранение
параметров настройки
Любые изменения параметров в
меню Теневого Сервис-Монитора
действуют только до момента вык-
лючения питания или "холодного"
сброса компьютера. После чего
все восстанавливается в состоя-
ние "по умолчанию". Это в пол-
ной мере относится к параметрам
жесткого диска и состоянию триг-
гера "on start". Однако, не все
так печально. На контроллере
SMUC установлены микросхемы эне-
ргонезависимой памяти, которые
способны хранить часть жизненно
важных переменных Монитора и
восстанавливать их сразу после
включения питания. Однако запи-
сать эти переменные в память
необходимо вручную.
Выйдите в главное меню Сер-
вис-Монитора ("Main menu"), за-
тем выберите подменю "Set Up", а
в нем подменю "Monitor". Теперь
выберите пункт "Save CMOS". Все
сделанные Вами установки пара-
метров будут сохранены в микрос-
хеме энергонезависимой памяти
(NVRAM), которая установлена на
всех выпускаемых контроллерах.
Тестирование жесткого диска
После автоматической, а тем
более ручной идентификации жес-
ткого диска, необходимо прове-
рить, как будет работать диск с
установленными "геометрическими"
размерами. Для этого в подменю
Set Up меню Hard disk utility
можно выбрать два теста; первый
(обозначаемый цифрой 1) предназ-
начен для проверки схемы тран-
сляции секторов внутри жесткого
диска и выявления нечитаемых
секторов. Кроме этого, тест поз-
воляет визуально оценить ско-
рость жесткого диска, посколь-
ку использует реальные подпро-
граммы драйвера, "зашитого" в
ПЗУ Теневого Монитора. Второй
тест (обозначенный цифрой 2) бо-
лее длителен и сложен. Он позво-
ляет проверить механизм переда-
чи данных, то есть работу схемы
IDE "в усиленном режиме".
Разберем работу тестов. Пер-
вый тест просто последовательно
считывает все сектора с жестко-
го диска. Проверка содержимого
секторов невозможна, и для оцен-
ки ошибок тест довольствуется
сообщениями, выдаваемыми жест-
ким диском. На экране компьюте-
ра индицируется текущий счетчик
проверяемого цилиндра и "бегу-
щая палочка", несколько оживляю-
щая картину; прервать тест мож-
но, нажав на BREAK. Собственно,
если "все хорошо", то этим дело
и ограничивается - счетчик дос-
читывает до максимального цилин-
дра, на экран выдается координа-
та последнего считанного секто-
ра, и тест завершается. Можно
переходить ко второму тесту.
В случае фиксирования ошибки
на экран выдается сообщение о
ней, в котором представлена
координата сбойного сектора (но-
мера цилиндра, головки и секто-
ра) и тип ошибки. Здесь следует
обратить внимание на "частоту"
ошибок. Если их мало и происхо-
дят они хаотично, то, скорее
всего, данный экземпляр жестко-
го диска неисправен, и дальней-
шая работа с ним не рекомендует-
ся. Если же ошибки следуют
"группами", с чередованием опре-
деленных номеров, например, не
читаются сектора, начиная с ка-
кого-то определенного номера на
всех головках, или на всех ци-
линдрах происходит ошибка, начи-
ная с определенной головки, то,
вполне вероятно, что для жестко-
го диска заданы неправильные
"геометрические" размеры. Быва-
ет, что на диске "вылетает" ка-
кая-то одна головка, и все сек-
тора, считываемые ею, оказывают-
ся "битыми". В этих случаях вы
должны вернуться к ручной уста-
новке параметров и попытаться
"отсечь" неисправное, уменьшив
соответствующие значения. После
чего проведите тест повторно.
Второй тест является более
информативным, но и более опас-
ным. Его алгоритм следующий - из
сектора считывается находящаяся
там информация, затем сектор за-
писывается псевдослучайным ко-
дом, после чего новая информа-
ция считывается и сверяется с
записанной, ну а в сектор воз-
вращается прежнее значение. Та-
кая операция производится для
всех секторов на жестком диске.
Как видно, тест не только пола-
гается на диагностику ошибок,
выдаваемую самим диском, но и
объективно проверяет качество
тракта записи/чтения. Почему
тест опасен - очевидно. Если
имеются ошибки записи, то в сек-
тор может не вернуться находив-
шееся там до операции значение,
к тому же непредвиденное преры-
вание теста (выключение питания,
ручной или произвольный сброс
компьютера) может привести к
аналогичным последствиям. Поэто-
му, во-первых, производите вто-
рой тест только после успешного
прохождения первого, а, во-вто-
рых, прерывайте прохождение тес-
та только по команде с клавиату-
ры BREAK.
Индикация, выдаваемая на эк-
ран, аналогична первому тесту.
Так же аналогичны действия в
случае ошибок - попробуйте "зак-
рыть" сбойные сектора или голов-
ки ручным заданием соответствую-
щих параметров.
Несколько замечаний по управ-
лению выводом сообщений об ошиб-
ках: вы можете приостановить вы-
вод текста (и тест), нажав на
клавишу SPACE, в этом состоянии
отмена дальнейшего прохождения
теста - клавиша EDIT/C, ну а
клавиша ENTER продолжает тест.
На тестировании заканчивает-
ся этап подключения жесткого
диска, теперь необходимо создать
логическую структуру для хране-
ния данных.
Создание
информационных разделов
Как и для дискеты, на жес-
тком диске необходимо создать
что-то типа каталога, информа-
ция из которого поможет опера-
ционной системе находить на нем
нужные файлы. Однако сама струк-
тура такого каталога оказывает-
ся значительно сложнее, чем для
дискеты. Во-первых, несопостави-
мы объемы, хранимые на дискете и
жестком диске, во-вторых, хоте-
лось бы иметь возможность рабо-
тать с несколькими операционны-
ми системами и даже в разных
"классах" компьютеров в рамках
одного диска (благо, объем дис-
ка это вполне позволяет).
Для чего нужны несколько сис-
тем? Этот вопрос должен рассмат-
риваться не здесь, но кратко от-
метим, что ни одна из сущес-
твующих на ZX Spectrum дисковых
систем не охватывает в полной
мере всех интересов всех пользо-
вателей. TR DOS де факто стал
"общей" системой, и в том числе
для хранения игровых программ,
Is DOS - система для делопроиз-
водства, Micro DOS - лучшее
средство для программиста и т.д.
Кроме этого, вполне можно совме-
щать использование одного и то-
го же жесткого диска на ZX Spec-
trum и, скажем, на IBM PC. Для
совмещения всех этих требований
был разработан формат хранения
данных, который в достаточном
объеме поддерживается Теневым
Монитором.
Глобальная таблица разделов
(MBR)
Прежде всего, необходимо раз-
граничить доступ к жесткому дис-
ку со стороны ZX Spectrum и, ес-
ли необходимо, ОС других компью-
теров. Для этого на диске соз-
дается так называемая главная
загрузочная запись (Master Boot
Record, MBR), а в ней главная
таблица разделов (Global Parti-
tion Table, GPT). Идея такая:
один раздел - одна система.
В подменю Hard disk utility
выберите пункт Partition manager
и войдите в редактор разделов.
Обратите внимание на названия
подменю, оно должно быть "Global
partition manager", если же вы
попали в "Local partition mana-
ger", это означает, что данный
жесткий диск уже использовался
на ZX Spectrum, и MBR создана.
Посмотрите на текущую главную
таблицу разделов, выберите пункт
Partition information.
На экране появится таблица, в
которой справа выводится тип
раздела, а слева - объем разде-
ла в мегабайтах. Отказаться от
просмотра таблицы можно, вос-
пользовавшись клавишей EDIT/C.
Тип Unused означает "пустое"
место (свободную запись в табли-
це, не соответствующую никакому
типу). Если ваш диск не новый,
то, вероятно, весь его объем бу-
дет разбит на несколько (или
один) разделов MS DOS или дру-
гих. Воспользуйтесь пунктом De-
lete partition для удаления не-
нужных вам разделов (подведите
курсор на экране к занятой запи-
си и нажмите ENTER).
Теперь можно приступать к
созданию специального "спектру-
мовского" раздела. Выберите
пункт Create partition..., в по-
явившейся знакомой таблице вы-
берите строчку Unused, нажмите
клавишу ENTER. Отредактируйте,
если необходимо, число в правой
части строки. Как уже говори-
лось, это число задает объем
создаваемого раздела. Если рабо-
та с другими компьютерами не
предполагается, то оставьте чис-
ло без изменений. Снова нажмите
на клавишу ENTER. В таблице бу-
дет создан раздел с названием
MFS и заданным объемом. Пункт
Create partition... может созда-
вать только раздел MFS, для соз-
дания других типов разделов не-
обходимо использовать соответ-
ствующие программы других ОС.
Если предполагается работа
с несколькими компьютерами, то
можно "разбить" жесткий диск
стандартными средствами, скажем,
на IBM PC, например программой
fdisk, оставив для раздела MFS
необходимое место.
Несколько замечаний. Спектру-
мовский раздел MFS может быть
только один. Несколько разделов
MFS допускаются для будущих рас-
ширений системы, но в настоящее
время работа происходит только с
первым из них. Всего в главной
таблице разделов может содер-
жаться до четырех записей.
Заметьте, что все действия по
редактированию таблицы разделов
происходит в памяти компьютера,
можно удалять и создавать раз-
дел сколько угодно, но для того,
чтобы информация попала на диск,
необходимо выбрать пункт Write
to disk. И только после подтвер-
ждения операции (клавиша Y)
главная таблица разделов будет
записана. Пункт Restore from
disk служит для копирования в
память компьютера текущей табли-
цы с диска. Если вы что-либо из-
менили, находясь в подменю ре-
дактора, то при попытке выхода
из подменю вам будет предложено
либо записать изменения (опять-
таки клавиша Y), либо отказаться
от изменений и оставить все как
было (любая другая клавиша).
Серьезно относитесь к измене-
нию таблиц разделов, поскольку
изменение формата таблицы нару-
шает существующие связи и приво-
дит к потере ранее содержавшей-
ся на жестком диске информации.
Обратите внимание, что мы ниче-
го не говорим о максимальном
размере создаваемого раздела
MFS. И действительно, его раз-
мер практически ничем не ограни-
чен. Хотя Теневой Монитор может
иметь доступ к объему около 1800
Мб, объем раздела может быть и
больше, но "лишняя" часть прос-
то пропадет зря.
Как только раздел MFS создан
в главной таблице разделов, в
подменю Global partition table
"открывается" пункт Local parti-
tion table. Выбрав этот пункт,
вы попадете в похожее подменю
редактора локальных разделов или
подразделов.
Локальная таблица (под)разделов
Созданный в главной таблице
"спектрумовский" раздел MFS,
должен, в свою очередь, быть
разделен на один (а, скорее,
несколько) подразделов. Каждый
подраздел способен "нести" свою
операционную систему в рамках ZX
Spectrum. В текущей версии Тене-
вого Монитора предусмотрены сле-
дующие типы ОС: TR-DOS, Micro
DOS, IsDOS. В следующих версиях
возможно добавление других сис-
тем, если в этом будет необходи-
мость. Отмечу, что только TR-DOS
пока полностью поддерживается
встроенным программным обеспече-
нием Теневого Сервис-Монитора.
Для остальных ОС должны сущес-
твовать соответствующие драйве-
ры в рамках этих ОС.
Сразу отметим ограничение
раздела MFS - он может содержать
до 63 различных подразделов,
объемом до 32 Мб каждый. Кро-
ме типа, подразделы различаются
именами, можно создать несколько
подразделов одного типа, но с
разными названиями. Длина имени
не более шести символов.
Коллекции дискет
(Подразделы TR-DOS)
Наиболее важной (и сложной)
особенностью встроенного прог-
раммного обеспечения является
попытка эмуляции на жестком дис-
ке дисковой системы TR-DOS. В
силу разных обстоятельств и нес-
мотря на вопиющие ошибки и не-
достатки, именно эта система
стала наиболее распространенной
для спектрум-совместимых компью-
теров в нашей стране. Поэтому
именно этой ОС с самого начала
работы уделено наибольшее внима-
ние.
При сравнении объема дискеты,
на который ориентирована TR-DOS,
и объема подраздела на жестком
диске, сразу бросается в глаза
несоразмерность служебной инфор-
мации в каталоге дискеты. Ката-
лог не был рассчитан на большие
объемы. Попытка как-то изменить
саму систему, "подогнать" ее па-
раметры к жесткому диску неми-
нуемо привела бы к несовмести-
мости новой и старой версий, а в
конечном итоге - просто к новой
операционной системе, причем с
заведомо плохими характеристика-
ми. Не пытаясь реанимировать
TR-DOS, Теневой Монитор, в то же
время, дает возможность исполь-
зовать жесткий диск для работы
со старой системой.
Идея чрезвычайно проста -
жесткий диск представляет собой
коллекцию псевдодискет, формат
которых в точности соответству-
ет обычным дискетам. Специальные
средства позволяют "вставлять"
такие дискеты в "обычные" диско-
воды, а TR-DOS даже не догадыва-
ется, что работает с эмулятором.
Непосредственно работе посвящена
целая часть описания, здесь же
мы расскажем, как создать кол-
лекцию псевдодисков (подразделов
TR-DOS).
Для начала нужно создать под-
раздел TR-DOS. Выберите пункт
Create partition... (напомним,
это необходимо делать в подменю
Local partition manager). Подве-
дите курсор с строке с надписью
Unused (вначале это единственная
строка), нажмите клавишу ENTER.
В строке появится надпись TR-DOS
- снова нажмите ENTER. Теперь
необходимо ввести имя подразде-
ла. Это имя будет в последующем
использовано для доступа к хра-
нящимся в подразделе псевдодис-
кам. Оно может содержать до 6
символов. Зафиксируйте ввод име-
ни клавишей Enter. Наконец,
необходимо выбрать объем подраз-
дела - введите число, равное ко-
личеству псевдодисков, содержа-
щихся в этом подразделе. Мини-
мальное число дисков - один,
максимальное - 51 (естественно,
если хватит свободного места в
данном подразделе). По умолча-
нию предлагается максимально
возможное в данном подразделе
количество. Зафиксируйте число
псевдодисков - нажмите на клави-
шу ENTER.
В отличие от работы с гло-
бальной таблицей разделов, сох-
ранять в памяти все изменения,
связанные с локальной таблицей,
хлопотно, поэтому программа сра-
зу же предложит внести измене-
ния на жесткий диск. В случае
утвердительного ответа (клавиша
Y) будет произведена разметка
соответствующего подраздела, что
может занять какое-то время. По
окончании разметки управление
вернется к редактору локальных
подразделов.
Можно создать несколько кол-
лекций псевдодисков, важно толь-
ко, чтобы имена у них были раз-
ные. Примите во внимание одно
обстоятельство. Коллекция псев-
додисков может быть удалена так
же, как и раздел в глобальной
таблице (как и любой другой под-
раздел, пункт Delete partiti-
on...), но только целиком. Теку-
щее программное обеспечение не
предусматривает уменьшение/уве-
личение размера подраздела. Раз-
рабатываемая сейчас программа
поддержки жестким диском некото-
рых функций Теневого Монитора
будет требовать на жестком дис-
ке некоторого количества памяти
(планируется до 3-5 Мб). Веро-
ятнее всего, тип используемого
подраздела должен будет быть
Micro DOS. Поэтому рекомендует-
ся оставить несколько мегабайт
незанятыми (Unused), для того,
чтобы впоследствии не пришлось
переразмечать весь жесткий диск.
Подразделы операционных систем
Создание подразделов IsDOS и
Micro DOS ничем существенно не
отличается от создания подразде-
ла TR-DOS. Выберите пункт Create
partition..., подведите курсор к
свободному подразделу (Unused),
нажмите клавишу ENTER. Клавишей
SPACE выберите необходимый тип,
зафиксируйте выбор клавишей
ENTER. Затем введите имя подраз-
дела (не более шести символов),
зафиксируйте имя, и, наконец,
задайте объем подраздела в кило-
байтах. Объем подраздела не мо-
жет быть менее 256 Кб или превы-
шать 32 Мб (точнее 32767 Кб).
Как и для подраздела TR-DOS,
можно создать несколько подраз-
делов с одним типом ОС, но раз-
ными именами.
Созданный подраздел - это
просто выделенное (зарезервиро-
ванное) место для выбранной ОС
на жестком диске. Для реальной
работы ОС необходим драйвер, на-
писанный в рамках этой ОС. В ПЗУ
имеются все необходимые сред-
ства (вызовы RST 8) для поддер-
жания такого драйвера. Нет сом-
нения, что в скором времени
драйвера будут написаны для
обеих систем. Для системы ISDOS
такой драйвер нами написан. Под-
робнее смотрите раздел "Работа с
жестким диском для ISDOS".
Работа с жестким диском
для TR-DOS
Как уже говорилось, работа
жесткого диска в рамках системы
TR-DOS практически ничем не от-
личается от таковой с реальными
дискетами.
Виртуальные и физические
дисководы
Аппаратная поддержка операци-
онной системы TR-DOS (Beta Disk
Interface) исторически поддержи-
вает до четырех реальных диско-
водов. В системе они обозначают-
ся символами A, B, C и D соот-
ветственно. Реально же подклю-
чается один, максимум два диско-
вода, устройства C и D как бы
пропадают. Изначально планирова-
лось именно на эти неиспользуе-
мые символы назначать созданные
на жестком диске псевдодискеты.
Эти дисководы становились вир-
туальными - для TR-DOS они есть,
а для Beta Disk Interface их
нет. Однако потом оказалось воз-
можным (для единообразия) пре-
дусмотреть такую возможность для
всех четырех устройств.
Но возник вопрос - как ука-
зать системе, что, скажем, дис-
ковод B сейчас является физичес-
ким (если он подключен к компью-
теру), а не виртуальным, и нао-
борот? Для выхода из подобной
ситуации было введено понятие
связи имени дисковода и образа
дискеты на жестком диске. Если
связь установлена - дисковод яв-
ляется виртуальным, и при обра-
щении к нему выбор физического
дисковода не происходит. Если
связи нет - дисковод физический.
Подключение образа дискеты
Установка связи между устрой-
ством и псевдодиском осущес-
твляется в подменю Hard disk
utility. Для каждого устройства
есть пункт Mount (монтировать,
подключать), с последующим име-
нем виртуального дисковода. Вы-
бор этого пункта приводит к
появлению на экране текущей таб-
лицы локальных разделов. Из нее
необходимо выбрать какую-либо
коллекцию псевдодисков (выбор
фиксируется нажатием клавиши
ENTER). После появления катало-
га коллекции подведите курсор к
нужному диску и зафиксируйте вы-
бор.
Имя выбранного (подключенно-
го) псевдодиска появится в стро-
ке Mount. Имя составное, первым
стоит имя коллекции (подраздела
TR-DOS), а через символ '\' сле-
дует имя образа диска.
Теперь любое обращение из
TR-DOS или из монитора к соот-
ветствующему виртуальному диско-
воду, будет "направлено" на жес-
ткий диск. Можно "отформатиро-
вать" псевдодиск (лучше выбрать
"быстрое" форматирование в под-
меню Disk Utility пункт Quick
format disk), и скопировать на
виртуальный диск файлы с реаль-
ного диска.
Текущие назначения автомати-
чески запоминаются на жестком
диске и восстанавливаются при
"холодном" старте компьютера.
Отключение от виртуального диска
Если необходимо разорвать
связь между именем устройства
TR-DOS и псевдодиском на жес-
тком диске, например, чтобы вер-
нуть физический диск B, необхо-
димо выбрать пункт Dismount... в
подменю Hard disk utility. При
этом все пункты Mount заменятся
на Dismount. Выберите пункт,
соответствующий нужному диску,
например Dismount B. Все пункты
Dismount вновь "обратятся" в
Mount, однако у выбранного пун-
кта исчезнет имя псевдодиска.
Особенности работы
в мониторе и TR-DOS
Итак, подключив жесткий диск,
сделав на нем структуру подраз-
делов и коллекций, связав псев-
додиск и дисковод, тем самым
создав виртуальный диск, вы мо-
жете приступать к нормальной
повседневной работе. Теперь по-
говорим о некоторых особеннос-
тях этой работы.
Приготовьтесь к тому, что не-
которая небольшая часть прог-
рамм, ранее худо-бедно работав-
шая с дискет TR-DOS, теперь ра-
ботать не будет. Это относится,
в основном, к старым программам,
которые не учитывали особеннос-
ти функционирования дисковой
системы, либо, в силу своей спе-
цифики, очень тесно "общались" с
дисковым контроллером, причем
при этом использовали отдельные
подпрограммы, расположенные вну-
три ПЗУ. Вносимые нами неизбеж-
ные правки в коды TR-DOS по воз-
можности не затрагивали "нижний"
уровень системы и жизненно важ-
ные функции. Но "нет в жизни со-
вершенства", и на что-то, увы,
эти изменения повлияют.
Несколько слов об автозапус-
ке компьютера. Если в подменю
"Disk Utility" пункт "Autostart"
находится в состоянии ON, то при
любом старте компьютера (после
"холодного" или "теплого" сбро-
са) будет происходить автомати-
ческий запуск операционной сис-
темы, находящейся на устройстве,
указанном в пункте "from drive"
этого же подменю. Не забудьте
выполнить запись текущего сос-
тояния в энергонезависимую па-
мять. Для системы TR-DOS это оз-
начает, что произойдет попытка
выполнения программы "boot<B>",
если таковая программа на диске-
те или псевдодискете присут-
ствует. Фактически, как бы вы-
полняется автоматическое нажа-
тие клавиши ENTER в меню 128
Бейсика, а системе передается
команда RUN "boot" для устрой-
ства A, и RUN "x:boot" для ос-
тальных (где x - имя диска). Та-
ким образом, вы каждый раз авто-
матически оказываетесь в знако-
мой для себя среде.
Замечание: не все файловые
оболочки ("буты") смогут загру-
жаться автоматически с устрой-
ства, отличного от A. Это отно-
сится к тем из них, кто пола-
гается, во-первых, на фиксиро-
ванное распределение памяти пос-
ле старта (обратите внимание на
два лишних символа в команде RUN
для устройств B...D). А, во-вто-
рых, для тех, кто не проверяет
имя дисковода своей загрузки;
такие программы пытаются подгру-
зить свои файлы всегда с фикси-
рованного дисковода (A). При же-
лании все эти загрузчики можно
просто доработать и сделать их
загружаемыми при автостарте. А
разработчикам новых программ
настоятельно рекомендуем учиты-
вать данное обстоятельство.
Работа с жестким диском
для IsDOS
Как и для TR-DOS, работа с
жестким диском из IsDOS мало чем
отличается от работы с дискетой.
Хотя и существуют несколько спе-
цифических моментов.
Создание подраздела
Для начала необходимо соз-
дать один (или несколько) под-
разделов типа IsDOS. Выберите
пункт Create partition... (на-
помним, это необходимо делать в
подменю Local partition mana-
ger). Подведите курсор к строке
с надписью Unused, нажмите кла-
вишу ENTER.
В строке появится надпись
TR-DOS. Клавишей SPACE выберите
тип IsDOS (типы циклически ме-
няются при нажатии на клавишу),
зафиксируйте выбор клавишей
ENTER. Введите имя подраздела
(не более шести символов). За-
фиксируйте ввод имени клавишей
Enter. И, наконец, задайте объем
подраздела в килобайтах.
Фирма ИскраСофт требует, что-
бы объем раздела не превышал
16384 Кб. На наш взгляд, опти-
мальное значение 8000-10000 Кб.
Запомните точную цифру (пос-
кольку, к сожалению, в настоящее
время при последующих просмотрах
таблицы объем раздела выводится
в целых мегабайтах).
Производимые манипуляции при
создании разделов IsDOS запишут-
ся на жесткий диск только при
выходе из подменю Local Partiti-
on manager (или при явном выбо-
ре пункта Write to disk). Для
подтверждения изменений в табли-
це на появившийся запрос необхо-
димо дать утвердительный ответ
(клавиша Y).
Подключение драйвера
Отметим, что вновь созданные
подразделы не несут в себе ника-
кой информации и не подключены
ни к каким устройствам в IsDOS.
Следующий этап - создание логи-
ческой структуры на жестком дис-
ке. Связь между системой и жес-
тким диском осуществляет разра-
ботанный нами драйвер mhdd.blk.
Загрузите ОС IsDOS с дискеты
(для работы с жестким диском мо-
жет быть использован только ва-
риант Classic). Загрузите драй-
вер mhdd.blk в память - для это-
го установите курсор на имя фай-
ла и нажмите клавишу ENTER. Убе-
диться в загрузке драйвера мож-
но программой dev.com, обычно
расположенной в каталоге \UTIL -
в левой панели должно появиться
упоминание о драйвере (MHDD).
Установив курсор на строку с
именем драйвера (в левой пане-
ли), в правой панели программы
можно выбрать устройство IsDOS,
которое будет подключено к жес-
ткому диску (символ "+" обоз-
начает подключение, изменяется
статус устройства клавишей SPA-
CE).
Какое устройство выбрать? Те-
невой Монитор позволяет одновре-
менно работать с четырьмя под-
разделами любых систем (пос-
кольку именно четыре устройства
могут быть подключены в меню те-
невого монитора). В текущей вер-
сии соблюдается, кроме того,
следующее соглашение - имена ус-
тройств ТМ и имена устройств,
обслуживаемых драйвером mhdd.
blk, совпадают. То есть, устрой-
ству A в Теневом Мониторе соот-
ветствует устройство A в IsDOS,
устройству B - B, и т.д. до ус-
тройства D. Из-за того, что ус-
тройства A и C обычно заняты
(первое под дисковод, второе под
электронный диск), остаются ус-
тройства B и D (устройство B,
занятое под второй дисковод
драйвером sys_driv, можно на
время работы с жестким диском
отключить от этого драйвера -
короче, вы можете сами конфигу-
рировать свою систему). После
того, как драйвер mhdd.blk заг-
ружен в память и подключен к ка-
кому-либо устройству, необходи-
мо подключить подраздел IsDOS на
жестком диске к одноименному ус-
тройству в Теневом Мониторе.
Для этого войдите в ТМ (нажа-
тием на кнопку Magic), в меню
Hard disk utility выберите пункт
Mount соответствующего устрой-
ства, а затем из таблицы ло-
кальных разделов выберите нуж-
ный подраздел. Процедура связи
устройства и подраздела ничем не
отличается от таковой для псев-
додисков TR-DOS, за тем исключе-
нием, что достаточно просто выб-
рать подраздел IsDOS. Вернитесь
в программу - выйдите из ТМ.
Теперь, когда связь установ-
лена, можно приступать к созда-
нию логической структуры в под-
разделе. Для этого воспользуй-
тесь программой create.com,
обычно находящейся в каталоге
\SERVICE. Установите имя устрой-
ства, связанного с жестким дис-
ком, измените параметры устрой-
ства: Sec Size (размер секто-
ра) - 256; Dev Size (размер ус-
тройства) - объем подраздела в
килобайтах, уменьшенный на еди-
ницу и умноженный затем на четы-
ре. Например, при объеме разде-
ла 5000 Кб, (5000-1) * 4 = 19996
(программа "скорректирует" это
значение до 19992). После успеш-
ного завершения создания устрой-
ства с ним можно работать, как с
обычной дискетой.
При последующих загрузках Is-
DOS необходимо повторить пункты
подключения драйвера (кроме, ко-
нечно, вызова программы creat.
com - ведь структура уже созда-
на), либо модифицировать старто-
вый командный файл для автомати-
ческой загрузки драйвера жестко-
го диска (подключения, сделан-
ные в Теневом Мониторе, сохра-
няются автоматически). Исполь-
зуйте документацию фирмы Искра-
Софт.
Необходимо отметить, что мож-
но "одновременно" работать бо-
лее чем с одним устройством (и,
соответственно, подразделом) на
жестком диске - подключите к
драйверу mhdd несколько ус-
тройств, а в Теневом Мониторе
свяжите с одноименными устрой-
ствами несколько подразделов с
типом IsDOS. Затем создайте ло-
гические структуры на каждом из
них. Более того, можно к одному
и тому же устройству IsDOS под-
ключать непосредственно в про-
цессе работы разные подразделы.
Для этого войдите в Теневой Мо-
нитор и свяжите с нужным устрой-
ством подраздел IsDOS, затем
вернитесь в операционную систе-
му IsDOS и перечитайте каталог
устройства.
Автозагрузка IsDOS
Применение дискеты для заг-
рузки системы, когда есть жес-
ткий диск, несколько утомляет и
может вызвать недоумение. Мы
предлагаем отказаться от загру-
зочной дискеты и воспользовать-
ся механизмом автостарта TR-DOS
программ. В двух словах метод
выглядит так: вы загружаете опе-
рационную систему IsDOS как
обычно, настраиваете ее под свои
нужды, а затем создаете в ТМ
файл-образ памяти компьютера (он
создается в рамках системы TR-
DOS), помещаете этот файл на
жесткий диск и указываете ком-
пьютеру автозагрузку этого фай-
ла. В результате сразу после
включения питания происходит
"автоматический" запуск IsDOS
(на самом деле вы просто оказы-
ваетесь в той точке, из кото-
рой делали файл-образ памяти, со
всеми настройками и назначения-
ми в системе). Конечно, это не
самое лучшее, но пока единствен-
но возможное решение проблемы.
Теперь об этом более подроб-
но. Во-первых, научитесь рабо-
тать с драйвером жесткого диска,
как это показано в предыдущем
разделе. К моменту создания фай-
ла-образа копии памяти вы уже
должны уметь работать из IsDOS с
жестким диском. Во-вторых, под-
готовьте образ диска TR-DOS, ку-
да вы будете сохранять копию
системы. Далее сделайте следую-
щее:
Сбросьте компьютер;
Загрузите операционную систе-
му IsDOS с дискеты как обычно;
Загрузите в память компьюте-
ра драйвер жесткого диска mhdd.
blk.;
Настройте драйвер программой
dev.com.;
Теперь можно сохранить копию
памяти. Замечание: для того,
чтобы при последующей загрузке
буфера драйверы жесткого диска
оказались чистыми, перед сохра-
нением копии памяти не выбирай-
те в панель файловой оболочки
IsDOS устройство, подключенное к
жесткому диску. Лучше всего, ес-
ли вы вызовете панель выбора ус-
тройств, подведете курсор к нуж-
ному имени и в этот момент сох-
раните копию памяти. Тогда в бу-
дущем вам останется только на-
жать на клавишу ENTER.
Для создания копии памяти
воспользуйтесь меню Save & Load
Теневого Монитора, подробно об
альтернативных Magic-файлах рас-
сказывается в брошюре А.А.Лар-
ченко "Краткое описание функций
Профессионального Расширения Те-
невого сервис-Монитора компью-
тера "Scorpion ZS 256 Turbo"".
Кратко, дело обстоит следующим
образом: для сохранения копии
памяти нужно выбрать пункт Sa-
ve... в меню Save & Load of
program. Запись на диск нач-
нется сразу после задания в поя-
вившемся служебном окне имени
файла. Имя файла задается без
кавычек и указания типа, но в
общем случае должно предваряться
именем диска (отделенного двое-
точием). Например, задание име-
ни isdosimg приведет к созданию
файлов (а их скорее всего будет
несколько) на текущем для ТМ ус-
тройстве (а вы помните, какое
устройство является текущим? Мо-
жно посмотреть в ТМ, но зачем
усложнять себе жизнь?) Задав имя
файла в виде b:isdosimg, вы яв-
но указываете, на каком устрой-
стве создавать файл-образ памя-
ти.
Создав на псевдодиске файл
копии памяти с IsDOS, допишите
туда же бейсик-программу загруз-
чик, имя программы должно быть
"boot":
10 CLEAR 28900
20 REM ---- Change file name
30 LET n$= "isdosimg"
40 REM
50 REM ---- Load program n$
60 LET a=29000
70 LET c=9: GO SUB 160
80 FOR i=1 TO LEN (n$)
90 POKE a,CODE n$(i)
100 LET a=a+1
110 NEXT i
120 LET c=3: GO SUB 160
130 RANDOMIZE USR 29000
140 STOP
150 REM ---------------------
160 FOR i=0 TO c
170 READ d
180 POKE a,d
190 LET a=a+1
200 NEXT i
210 RETURN
220 REM ---- Code
230 DATA 217,229,1,0,0,58,246,
92,207,139,0,225,217,201
В строке 30 можно указать
другое имя файла полной копии
памяти.
Для включения режима автос-
тарта необходимо в подменю "Disk
Utility" пункт "Autostart" уста-
новить в состоянии ON, а в пун-
кте "from drive" указать имя ус-
тройства, связанного с псевдо-
диском. Не забудьте записать эти
изменения в энергонезависимую
память. Более полная информация
о режиме автостарта содержится в
уже упомянутой ранее брошюре
"Краткое описание функций Про-
фессионального Расширения Тене-
вого сервис-Монитора компьютера
Scorpion ZS 256 Turbo".
Работа других
операционных систем
Как уже говорилось, для рабо-
ты ОС, отличной от TR-DOS, необ-
ходим специальный драйвер, кото-
рый будет осуществлять доступ
ядра OC к выделенному разделу
жесткого диска. В настоящее вре-
мя ведется работа над подключе-
нием двух систем: Micro DOS и
IsDOS. Micro DOS (порт системы
CP/M) - полноценная ОС, изна-
чально ориентированная на рабо-
ту с жестким диском, необходи-
ма, прежде всего, для расширения
функционирования Теневого Мони-
тора. При этом система будет
полностью "прозрачна" для поль-
зователя - то есть при желании
(или "нежелании") он вообще не
будет знать, что такая система
установлена на его компьютере.
Основная цель проекта - поддер-
жка программиста; напомним, что
большая часть ТМ была написана
в рамках программ, использующих
CP/M.
Разбор функционирования сис-
темы Is-DOS показал, что при ее
проектировании были учтены (по
нашему мнению) не все требова-
ния, предъявляемые для системы,
которая должна автономно рабо-
тать на жестком диске. Это соз-
дает известные неудобства, как
например, при работе с контрол-
лером компьютера KAY - загрузка
системы происходит с дискеты,
после чего подгружается драйвер
жесткого диска. Предложенный вы-
ше способ автозагрузки системы
не может быть признан удачным,
поэтому работы в этом направле-
нии будут, конечно, продолжены.
* * *
НОВЫЕ ПОДПРОГРАММЫ
ТЕНЕВОГО СЕРВИС-МОНИТОРА (RST 8)
ДЛЯ РАБОТЫ С КОНТРОЛЛЕРОМ
ПЕРИФЕРИИ SMUC
Ряд новых вызовов для п/п 81h
R8DOS (вызов встроенного в мони-
тор дискового интерпретатора,
код подфункции задается в регис-
тре C):
Изменена подфункция 9(SETWRK)
дисковой системы (R8DOS). Начи-
ная с версии 3.0a (код 68 от
29.04.95), в регистрах DE и BC
возвращаются код версии и дата
компиляции монитора (в предыду-
щих версиях эти регистры не из-
менялись). D - код версии; C, B,
E - соответственно число, месяц
и год.
C=34 ($hddid) - идентификация
жесткого диска.
in: 512-байтный буфер, указа-
тель на который задается в
workfl (подфункция 9).
out: CY - error (нет HDD)
В принципе, идентификация
происходит автоматически при
старте машины, эта подфункция
определяет, есть ли диск вообще,
и пытается возвратить в буфер
сектор-идентификатор, считанный
из HDD.
C=35 ($hddmount) - подключе-
ние раздела к драйверу HD. Под-
ключает указанный подраздел к
драйверу жесткого диска, после
этого становятся возможными опе-
рации чтения/записи из раздела;
если подключается образ диска
(т.е. задано имя подраздела TR-
DOS и имя диска в нем), то ста-
новится возможным обращение из
TR-DOS.
in: Akk - тип операции, зада-
ется битами (в скобках [] указа-
ны приоритеты - 0 наивысший).
7 [2] - автоподключение, т.е.
подключить то, что задано в сек-
торе автонастроек, при этом биты
0, 1 - номер диска (0 - "A", 1 -
"B", 2 - "C", 3 - "D"), диск A -
только при аппаратной поддержке,
в противном случае выдает ошиб-
ку.
6 [0] - отключить подраздел
от драйвера (запрещение операций
чтения/записи), в этом случае
биты 0, 1 - номер диска (0 -
"A", 1 - "B", 2 - "C" или 3 -
"D").
5 [1] - подключить подраздел
к драйверу, указав (в DE) адрес
дескриптора (длиной 25 байт),
возвращаемого при предыдущих
подключениях (см. бит 4).
4 [4] - вернуть в память (по
HL) дескриптор текущего подклю-
ченного к драйверу раздела;
только эта команда может указы-
ваться совместно с остальными.
3 [3] - подключение по имени,
адрес имени в памяти в DE: тек-
стовая строка вида [dr:][\]part\
dos, где part - имя раздела, dos
- имя диска в разделе TR-DOS,
если не задано dr, то подключе-
ние происходит к задаваемому би-
тами 0 и 1 диску.
2 - должен быть 0.
0, 1 - номер дисковода : 0 -
"A", 1 - "B", 2 - "C",3 - "D".
out: CY - error (любые ошиб-
ки, в том числе "раздел не най-
ден").
C=36 ($hddrd) - прямое чте-
ние секторов из подраздела жес-
ткого диска.
Чтение осуществляется из "те-
кущего" подраздела - последнего
подраздела, подключенного под-
функцией $hddmount.
in: hl - адрес в памяти, ку-
да считывать, de - начальный но-
мер сектора (считая с 1!), b -
число секторов (размер сектора
512 байт!)
out: CY - ошибки.
C=37 ($hddwr) - прямая запись
секторов в подраздел жесткого
диска.
Запись осуществляется в "те-
кущий" подраздел - последний
подраздел, подключенный подфун-
кцией $hddmount.
in: hl - адрес в памяти, от-
куда записывать, de - начальный
номер сектора (считая с 1!), b -
число секторов (размер сектора
512 байт!)
out: CY - ошибки.
C=38 ($hddpart) - вернуть та-
блицу (каталог) подраздела. Каж-
дый вход в таблице описывается
16 битами, где +0 - тип подраз-
дела, только младшие 5 бит (0 -
нет; 1 - TR-DOS, 2 - Micro-
DOS...), +6 - объем подраздела в
секторах, +10 - имя подраздела
(6 байт).
Замечание: получить имя под-
раздела TR-DOS можно, подключив
подраздел TR-DOS (см. функцию
35, не задавая имени диска!) и
далее - прямым считыванием сек-
торов 0 и 1 - каталога дисков.
Формат каталога аналогичен фор-
мату таблицы подразделов.
in: Akk - должен быть 0, hl -
адрес буфера для таблицы (1024
байта).
out: CY - ошибки.
de - число задействованных
входов в таблице.
Функция 89h (R8time), вызова
RST 8, позволяет установить или
прочитать время из микросхемы
энергонезависимой памяти (CMOS),
код операции задается в регистре
D (отдельными битами):
7: (1) - записать значение
времени и/или даты, (0) - счи-
тать значения времени и/или да-
ты.
6: (1) - считывание в буфер
(только если бит 7 = 0) (см. бит
5).
5: (1) - прямое считывание (6
байт данных из CMOS), (0) - счи-
тывание в формате ASCII.
0: (1) - работа с датой, (0)
- работа со временем.
Кроме этого, при вызове фун-
кции регистр HL может указывать
адрес буфера (расположенный в 5
и 2 банках CPU), если бит 6 = 1.
Регистр E содержит формат считы-
вания: младшие 5 бит - символ
разделителя (для вывода в форма-
те ASCII); биты 7, 6 и 5 разре-
шают вывод соответственно часов,
минут и секунд, либо для вывода
даты: 7 - выводить день недели,
6 - ставить "0" перед числом, 5
- выводить месяц словом и перед
годом добавлять 19. Функция воз-
вращает данные либо в буфер (в
виде строки ASCII или 6-ю байта-
ми: секунды, минуты, часы, чис-
ло, месяц, год), либо в регис-
трах: C - секунды/число, B - ми-
нуты/месяц, E - часы/год, L -
день недели. В этих же регис-
трах задаются значения для изме-
нения времени или даты. Бит CY
указывает на ошибку (микросхемы
CMOS нет).
Краткая информация
по работе с IBM периферией
Схема дешифрации контроллера
позволяет выбирать любой порт
ввода/вывода на периферийной
плате IBM PC XT, подключенной к
SMUC.
Порты ввода/вывода IBM ус-
тройств дешифрируются по 10 ад-
ресным линиям (a9...a0). При
этом, по спецификации IBM, ли-
ния a9 для "внешних" устройств
IBM PC XT должна быть в состоя-
нии лог. 1, что аппаратно обес-
печивается в SMUC. Остается 9
линий, но разместить их все в
адресном пространстве ZX Spec-
trum сложно - необходимо обеспе-
чить дешифрацию и других ус-
тройств контроллера. Поэтому две
старшие линии (a8 и a7) мультип-
лексируются, их состояние в опе-
рации ввода/вывода статично.
Значение этих адресов должно
быть предварительно записано в
специальный управляющий регистр
контроллера. Адрес этого регис-
тра в пространстве TR-DOS ZX
Spectrum - 0ffbah. Поскольку ос-
тальные разряды управляющего ре-
гистра используются для внутрен-
них нужд самого контроллера,
необходимо обеспечить их коррек-
тную установку.
Задание разрядов a8 и a7:
D7 0
D6 1
D5 1
D4 1
D3 0
D2 A8
D1 A7
D0 1
Внимание! На контроллерах
SMUC версии 1.1 и ниже была до-
пущена ошибка, никак не влияю-
щая на работу с HDD. Разряд A8
адресной шины IBM слота управ-
лялся не разрядом D2, а разря-
дом D3. Если у Вас контроллер
версии 1.1 и ниже, то вам необ-
ходимо самостоятельно сделать
его доработку (исправление на-
шей ошибки). Для этого необходи-
мо перерезать проводник, идущий
к выводу 6 микросхемы 1533ТМ9, и
подключить вывод 6 ТМ9 к выводу
9 панельки для i8259A при помо-
щи короткой перемычки. Кроме
этого, желательно изменить вер-
сию прошивки микросхемы ALTERA
7032. Замена версии прошивки
производится в фирме "Скорпион"
бесплатно.
Другая установка разрядов D7,
D6, D5, D4, D3 и D0, кроме пока-
занной выше, недопустима и может
привести к неработоспособности
контроллера.
Остальные семь адресных линий
напрямую передаются к IBM слоту.
Для выбора IBM устройства необ-
ходимо обеспечить полный шестна-
дцатизначный адрес порта ввода/
вывода ZX Spectrum, в котором
следует установить линии выбора
самого слота и адреса в нем. Об-
ращение к адресу следует произ-
водить в поле адресов TR-DOS.
Выбор IBM слота:
Scorpion IBM Scorpion IBM
A15 0 A07 1
A14 a4 A06 1
A13 a3 A05 1
A12 1 A04 a6
A11 1 A03 a5
A10 a2 A02 1
A09 a1 A01 1
A08 a0 A00 0
Символами aN обозначены ад-
ресные линии портов ввода/выво-
да на картах IBM PC XT.
Пример обращения к карте пос-
ледовательного интерфейса COM1,
подключенной к контроллеру SMUC.
Базовый адрес устройства COM1,
специфицированный на IBM-совмес-
тимых картах - 0x3f8h. Вначале
определяется содержимое регис-
тра управления (адресные линии
a8 и a7). Для адреса 0x3f8h это:
a8=1, a7=1, следовательно, в уп-
равляющий регистр необходимо за-
писать 77h:
D7 0
D6 1
D5 1
D4 1
D3 0
D2 1
D1 1
D0 1
Далее вычисляется адрес внеш-
него устройства в области TR-
DOS; подставив в таблицу соотве-
тствующие адресные линии, полу-
чим 78feh:
Scorpion IBM Scorpion IBM
A15 0 A07 1
A14 1 A06 1
A13 1 A05 1
A12 1 A04 1
A11 1 A03 1
A10 0 A02 1
A09 0 A01 1
A08 0 A00 0
Для обращения к портам вво-
да/вывода ZX Spectrum, адресуе-
мым в области TR-DOS, в Теневом
Мониторе существуют две подпрог-
раммы, расположенные в части TR-
DOS ПЗУ:
org 3ff0h
out (c),a
ret
org 3ff3h
in a,(c)
ret
Пример кода, считывающего байт
из регистра данных COM1:
ld a, 77h ; байт
для установки разрядов A8 и A7
на IBM-слоте.
ld bc, 0ffbah
call wrtrdos
ld bc, 78feh
call rdtrdos
;данные в аккумуляторе
;....
wrtrdos: ;запись в порт
в/в, находящийся в пространстве
TRDOS.
ld hl, 3ff0h
push hl
jp 3d2fh
rdtrdos: ;считывание из
порта в/в, находящегося в прос-
транстве TRDOS.
ld hl, 3ff3h
push hl
jp 3d2fh
Дальнейшее развитие
В самом ближайшем будущем мы
планируем, по возможности, ввес-
ти более удобный способ работы
контроллера SMUC в системе IS
DOS. В дальнейшем планируется
расширение функций Теневого Сер-
вис-Монитора, связанных с под-
держкой устройств, установленных
на контроллере SMUC. Здесь речь
идет прежде всего о поддержке
HAYEs-совместимого модема, а та-
кже о подключении накопителя на
CD дисках и выпуска CD ROM для
Spectruma. Кроме этого, ведутся
работы по русификации Теневого
Сервис-Монитора. Появление быс-
тродействующей внешней памяти -
жесткого диска, а скорость ввода
данных с HDD сравнима со скорос-
тью ввода программ из ROM-диска,
позволили начать работу над соз-
данием гипертекстовой справоч-
ной системы по функциям Тенево-
го Сервис-Монитора и Spectrum-
совместимым компьютерам в целом.
Кроме этого, планируется созда-
ние операционно независимой сис-
темы псевдомногозадачности, что-
то типа MagOS, но встроенной в
"сердце" компьютера и поэтому
работающей намного корректнее, к
тому же обладающей практически
неограниченной памятью. Более
того, на наш взгляд, подключе-
ние накопителя на жестком диске
решает вопрос расширения памяти
компьютера до любой разумной ве-
личины. Причем такое расширение
обходится пользователю намного
дешевле, чем использование не-
посредственно микросхем ОЗУ.
Кроме этого, к сожалению, не су-
ществует практически никаких
стандартов на расширения памяти
свыше 128 кБайт, и поэтому эта
дополнительная память практичес-
ки не поддерживается разработчи-
ками ПО. Использование же HDD в
качестве расширенной памяти с
обязательной поддержкой на уров-
не теневого сервис-монитора поз-
волит использовать расширенную
память хотя бы для того, чтобы
превратить компьютер в многоза-
дачную систему с одновременно
работающими различными програм-
мами, причем программы будут аб-
солютно стандартными, без вся-
ких доработок, и количество та-
ких программ практически не ог-
раничено. Кроме этого, запуск
работы нескольких программ пос-
ле включения компьютера не бу-
дет занимать дополнительного
времени, как, например, в теку-
щей версии MagOS. Из всего вы-
шесказанного можно сделать вы-
вод, что работы над совершество-
ванием программного обеспечения
идут постоянно. Как мы уже неод-
нократно писали, это является
самым главным отличием нашего
компьютера от всех остальных
Spectrum-совместимых моделей -
постоянное увеличение возможнос-
тей компьютера только за счет
программного обеспечения, без
изменения аппаратной части. Всем
пользователям Scorpion-совмести-
мых компьютеров сообщаем о вве-
дении нами новой услуги: вы мо-
жете приобрести у нас дискету с
последними прошивками Професио-
нального ПЗУ и тем самым полу-
чить самую последнюю версию сис-
темного ПЗУ. Также, всегда Вы
можете "скачать " свежие прошив-
ки ППЗУ из файл-эхо ZX Spectrum
в сети FIDO.
* * *
в/в, находящийся в пространстве
TRDOS.
ld hl, 3ff0h
push hl
jp 3d2fh
rdtrdos: ;считывание из
порта в/в, находящегося в прос-
транстве TRDOS.
ld hl, 3ff3h
push hl
jp 3d2fh
Дальнейшее развитие
В самом ближайшем будущем мы
планируем, по возможности, ввес-
ти более удобный способ работы
контроллера SMUC в системе IS
DOS. В дальнейшем планируется
расширение функций Теневого Сер-
вис-Монитора, связанных с под-
держкой устройств, установленных
на контроллере SMUC. Здесь речь
идет прежде всего о поддержке
HAYEs-совместимого модема, а та-
кже о подключении накопителя на
CD дисках и выпуска CD ROM для
Spectruma. Кроме этого, ведутся
работы по русификации Теневого
Сервис-Монитора. Появление быс-
тродействующей внешней памяти -
жесткого диска, а скорость ввода
данных с HDD сравнима со скорос-
тью ввода программ из ROM-диска,
позволили начать работу над соз-
данием гипертекстовой справоч-
ной системы по функциям Тенево-
го Сервис-Монитора и Spectrum-
совместимым компьютерам в целом.
Кроме этого, планируется созда-
ние операционно независимой сис-
темы псевдомногозадачности, что-
то типа MagOS, но встроенной в
"сердце" компьютера и поэтому
работающей намного корректнее, к
тому же обладающей практически
неограниченной памятью. Более
того, на наш взгляд, подключе-
ние накопителя на жестком диске
решает вопрос расширения памяти
компьютера до любой разумной ве-
личины. Причем такое расширение
обходится пользователю намного
дешевле, чем использование не-
посредственно микросхем ОЗУ.
Кроме этого, к сожалению, не су-
ществует практически никаких
стандартов на расширения памяти
свыше 128 кБайт, и поэтому эта
дополнительная память практичес-
ки не поддерживается разработчи-
ками ПО. Использование же HDD в
качестве расширенной памяти с
обязательной поддержкой на уров-
не теневого сервис-монитора поз-
волит использовать расширенную
память хотя бы для того, чтобы
превратить компьютер в многоза-
дачную систему с одновременно
работающими различными програм-
мами, причем программы будут аб-
солютно стандартными, без вся-
ких доработок, и количество та-
ких программ практически не ог-
раничено. Кроме этого, запуск
работы нескольких программ пос-
ле включения компьютера не бу-
дет занимать дополнительного
времени, как, например, в теку-
щей версии MagOS. Из всего вы-
шесказанного можно сделать вы-
вод, что работы над совершество-
ванием программного обеспечения
идут постоянно. Как мы уже неод-
нократно писали, это является
самым главным отличием нашего
компьютера от всех остальных
Spectrum-совместимых моделей -
постоянное увеличение возможнос-
тей компьютера только за счет
программного обеспечения, без
изменения аппаратной части. Всем
пользователям Scorpion-совмести-
мых компьютеров сообщаем о вве-
дении нами новой услуги: вы мо-
жете приобрести у нас дискету с
последними прошивками Професио-
нального ПЗУ и тем самым полу-
чить самую последнюю версию сис-
темного ПЗУ. Также, всегда Вы
можете "скачать " свежие прошив-
ки ППЗУ из файл-эхо ZX Spectrum
в сети FIDO.
* * *