ZX Review
#11-12
26 ноября 1997 |
|
Авторская разработка - С.Зонов, А.Ларченко. О контроллере SMUC (HDD и IBM периферия).
┌──────────────────────────────┐ │ │ │ АВТОРСКАЯ РАЗРАБОТКА │ │ │ └──────────────────────────────┘ 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. * * *
Другие статьи номера:
Похожие статьи:
В этот день... 10 октября