TR-DOS
ОПЕРАЦИОННАЯ СИСТЕМА
При разработке ZX Spectrum в качестве базовых устройств вво-
да/вывода рассматривались два — Таре (лента, магнитофон) и Microdrive
(микродрайв). Поддержка магнитофона была прямо включена в Бейсик,
и это, как мы уже писали, позволило существенно снизить стоимость
компьютера. Согласитесь однако, что работать с лентой не очень-то
удобно, особенно если Вы используете какой-нибудь компилятор и
постоянно вынуждены перезагружать промежуточные файлы. Кроме
того, на ленте возможны только файлы последовательного доступа.
Микродрайв, будучи, по сути, той же лентой (только «замкнутой» в
«бесконечное» кольцо), позволял записывать и стирать файлы, не выни-
мая кассеты (картриджа), появилась возможность работы с файлами
прямого доступа. Но очень скоро магнитную ленту стали теснить другие
устройства хранения информации — магнитные диски, которые в конце
концов прочно заняли место основных сменных носителей информации,
сохранив область применения ленты только лишь для долговременного
хранения данных.
Не оставили без внимания и Speccy, для него было создано около
десятка различных дисковых систем. Однако «законная» дисковая сис-
тема появилась только в модели Spectrum +2А.
Мы не знаем кто и когда собрал первый отечественный вариант
дисковой системы Beta Disk Interface фирмы Technology Reasearch, но
получилось так, что именно он стал стандартом «де факто» на дисковую
систему для ZX Spectrum в нашей стране. Аппаратная часть не может
функционировать, если она не поддержана программно. Такую поддержку
для Beta Disk'a выполняет твердотельная дисковая операционная система
TR-DOS, физически расположенная в постоянной памяти платы конт-
роллера. К сожалению, приходится признать, что это не лучшая диско-
вая система для ZX Spectrum, но что сделано, то сделано.
L TR-DOS для пользователей
При описании TR-DOS мы стремились учесть интересы пользова-
телей, как только начинающих изучать систему, так и имеющих опыт
работы с ней. Надеемся, что интерес вызовут и сведения о строении и
использовании внутренних возможностей системы. В тексте не всегда
приводится описание тех или иных терминов, поэтому в конце главы мы
поместили небольшой толковый словарик.
Заметим, что система TR-DOS прочно связана не только с ин-
терфейсом Beta Disk, но и со стандартной операционной системой
ZX Spectrum (бейсик-системой).
ЧТО НЕОБХОДИМО ЗНАТЬ О СИСТЕМЕ!
Программно система TR-DOS «скрыта» от пользователя, иными сло-
вами, в области памяти ZX Spectrum ее нет. Однако для своей работы система
все же использует небольшую часть оперативной памяти компьютера. При
первом обращении к системе в памяти появляется область системных пере-
менных TR-DOS. Более подробно об этой и других особенностях системы мы
расскажем в разделе «TR-DOS изнури», сейчас же важно отметить, что такая
область существует.
Ввод команд
Для того, чтобы воспользоваться средствами дисковой системы TR-
DOS, существуют два основных способа. Команды системы можно выпол-
нять либо из Бейсика (непосредственно или из программы), либо из среды,
предоставляемой TR-DOS.
Когда система установлена на обычный ZX Spectrum*, то войти в
среду TR-DOS можно, просто включив компьютер. На экран будет выведено
следующее сообщение:
* tr-i>os иег |
5.03 * |
© 1966 Technology |
Research Lid. |
(U.K.> |
|
ветя 1S6 ЛШ |
|
рж |
|
Затем начнется процесс автозагрузки программ: если в дисковод А
вставлена дискета, то на ней система попытается отыскать и выполнить
программу под именем boot<B>. Если дискеты (или дисковода) нет, то внизу
экрана появится подсказка системы
А>
а следом за ней можно набирать и редактировать команды системы. Выпол-
няется команда после нажатия клавиши Enter. В большинстве случаев после
выполнения команды управление остается в среде TR-DOS.
*) Под «обычным» мы будем подразумевать компьютер, имеющий 48К
оперативной памяти.
Если же после включения питания компьютер сразу переходит в
бейсик-систему, то это скорее всего указывает на неправильное подключе-
ние аппаратного обеспечения системы. Для входа в TR-DOS, как и в случае
использования компьютера ZX Spectrum 128, нужно воспользоваться при-
веденным ниже программным способом.
Чтобы попасть в среду TR-DOS, необходимо выполнить команду из
Бейсика
RANDOMIZE USR 15616
после чего также появится подсказка системы.
Для возврата в бейсик-систему служит команда RETURN.
При выполнении команд непосредственно из Бейсика перед операто-
ром TR-DOS необходимо набрать префикс
RANDOMIZE USR 15619: REM :
Далее должен следовать оператор системы. В этом виде можно вставить
оператор TR-DOS и в тело программы на Бейсике.
Все команды TR-DOS могут выполняться как из Бейсика, так и из
среды системы. Поэтому в дальнейшем мы не будем каждый раз оговаривать,
откуда выполняется та или иная команда.
Команды в TR-DOS могут быть набраны как ключевыми словами
Бейсика — токенами, так и посимвольно*.
Выбор дисковода. Автонастройка
Физически TR-DOS поддерживает работу четырех дисководов, обоз-
начаемых буквами А, В, С и D. Логически система разделяет дисководы иа
постоянный (текущий) и временные. Постоянный дисковод еще называют
выбранным по умолчанию. Если в команде конкретно не указано имя (буква),
то операция проводиться с постоянным дисководом, его имя выводиться в
подсказке системы. Сразу после включения питания (или после сброса
компьютера) постоянным автоматически выбирается дисковод А. Для выбора
другого постоянного дисковода служит команда
*"N"
где N — имя дисковода А, В, С или D, выбираемого по умолчанию.
Однако, зная имя дисковода, система не знает его характеристик. Для
правильной работы с устройством перед первым обращением к любому из
четырех дисководов TR-DOS предварительно производит автонастройку,
иногда называемую автотестом дисковода. В результате автонастройки
система узнает количество дорожек дисковода (40 или 80), а также его
скорость (точнее, скорость перемещения магнитной головки). Эти данные
записываются в область системных переменных TR-DOS и хранятся там до
очередного сброса компьютера.
*) Рекомендуется все же набирать их токенами. При посимвольном наборе
буквы верхнего и нижнего регистров не различаются. Например,
RANDOMIZE USR 15619: REM : LOAD "Prog"code4000G
Здесь слово code набирается по буквам. Кстати, возможность посимволь-
ного ввода имеет неприятный побочный эффект: из-за этого в строках
TR-DOS недопустимо применение имен переменных, совпадающих по
написанию с ключевыми словами, используемыми в TR-DOS.
Автонастройка происходит в два этапа. На первом проверяется ско-
рость перемещения магнитной головки. Для этого головка с максимально
возможной скоростью позиционируется сперва на 32, а затем на 1 дорожку
дисковода. Если эта операция выполнена, то тест завершается, в противном
случае тест повторяется с меньшей скоростью. На втором этапе проверяется
число дорожек дисковода. Для этого магнитная головка позиционируется на
50 дорожку, а затем на 2. Если дисковод имеет 80 дорожек, то позициониро-
вание проходит успешно. Для 40-дорожечных дисководов головка не может
переместиться дальше 40 дорожки, поэтому, пройдя 48 дорожек «назад», она
оказывается не на 2, а на 0 дорожке (ниже 0 дорожки головка также не может
«прыгнуть»).
Некоторые дисководы (в основном, производства Болгарии старых
выпусков) неправильно отрабатывают автотест и не позволяют системе
определить число дорожек. В этом случае количество дорожек необходимо
задать вручную с помощью команд
40
или
80
КАК РАБОТАЕТ СИСТЕМА
Разберем работу оператора
PRINT USR 15619: REM : *"А"
Для этого сбросим компьютер и перед тем как выполнить оператор TR-DOS,
посмотрим адрес системной переменной CHANS
PRINT PEEK 23631 +256* PEEK 23632
23734
Итак, рабочая память начинается с адреса 23734. Запомним это и
выполним команду, предварительно вставив в дисковод А любую дискету.
Для читателей, знакомых с Бейсиком ZX Spectrum, очевидно, что
«главным» здесь является вызов функции USR, которая передает управление
подпрограмме, расположенной по адресу 15619. Более подробно о том, что
происходит дальше, будет рассказано в разделе «Точки входа в систему».
Важно то, что вызов ОС TR-DOS может быть везде, где возможен вызов
функции в Бейсике. По окончании выполнения функция USR возвращает
некоторое число — код ошибки системы (см. раздел «Сообщения об ошиб-
ках»), которое и напечатает оператор PRINT.
Теперь посмотрим, что же находится справа от вызова функции.
Команде TR-DOS *"А" предшествует оператор Бейсика REM, зачем? Дело в
том, что «свои» команды ОС обрабатывает только на этапе выполнения
программы. На стадии проверки синтаксиса команды пропускаются, таким
образом, для «обмана» интерпретатора Бейсика нужен следующий за вызо-
вом функции оператор REM. Все, что стоит за ним, Бейсиком не рассматри-
вается, а прямо вставляется в программу — и все, что находится справа от
числа 15619, будет рассматриваться уже TR-DOS. Это свойство несколько
упростило саму ОС, но поставило ряд ограничений перед программистом:
оператор TR-DOS должен быть последним в строке.
Теперь вспомним о рабочей памяти и снова посмотрим содержимое
системной переменной CHANS
PRINT PEEK 23631 +256» PEEK 23632
23846
Содержимое ячейки изменилось. Именно между этими двумя адреса-
ми (23734...23845) TR-DOS и расположила 112 байт своих системных
переменных.
РАБОТА С ДИСКЕТОЙ
Подготовка файловой структуры
Для того, чтобы записать или прочитать с дискеты какую-либо инфор-
мацию, ее предварительно необходимо соответствующим образом подгото-
вить. Дело в том, что в отличие от магнитной ленты, где информация
записывается последовательно блоками различной длины, на дискету ин-
формация записывается определенными порциями, называемыми сектора-
ми» и на определенное место — дорожки. Зная номер дорожки и сектора,
можно легко найти требуемую запись. Для синхронизации и идентификации
записываемых и считываемых данных на дискету необходимо предваритель-
но записать служебную информацию, иными словами дискету надо отфор-
матировать. Но это не все. После разметки дискеты на ней необходимо
создать файловую структуру — каталог файлов.
Каталогом назывется специальная область на дискете, в которой
TR-DOS хранит информацию о том, что и где записано на дискете. Если ОС
требуется что-либо прочитать, то, найдя в каталоге имя программы или
данных, она точно знает на какой дорожке, с какого сектора начинается
программа и сколько места она занимает. Если же требуется записать
что-либо, то из каталога извлекается информация о наличии свободного
места на дискете и где именно оно находится. Короче говоря, информация
о программах доступна ОС в любой момент времени, а у пользователя
отпадает необходимость держать наготове бумагу и карандаш, чтобы быстро
найти нужные данные.
Процесс создания каталога называют еще логическим форматирова-
нием или инициализацией. TR-DOS форматирует и инициализирует диске-
ты одной командой FORMAT.
Синтаксис команды FORMAT следующий*:
FORMAT "[X:][$][nam©]"
где
X
имя дисковода, в который вставлена дискета. Если этот параметр пропущен,
то форматирование будет происходить на текущем дисководе;
nam®
имя, которое будет присвоено дискете. Его называют еще меткой диска или
уж совсем страшно — именем тома. Имя содержит до 8 любых символов и
хранится в специально отведенных ячейках в каталоге. Для дальнейшей
работы с дискетой оно не используется и нужно лишь пользователю для того,
чтобы как-то различать дискеты между собой**;
*) Как и раньше, в квадратные скобки заключаются необязательные пара-
метры команд.
**) Имя диска выводится специальными командами ОС при просмотре
каталога, о которых речь пойдет в следующем разделе.
$
специальный символ $, поставленный перед именем дискеты, заставляет
TR-DOS форматировать дискету как одностороннюю.
ОС форматирует дискету в соответствии с характеристиками диско-
вода. На двухсторонних дисководах и дискеты будут отформатированы как
двухсторонние. Использование символа $ позволяет «обойти» это свойство.
В зависимости от дисковода определяется и емкость дискеты, то есть какое
число программ может быть на нее записано. На каждой дорожке TR-DOS
создает 16 секторов емкостью по 256 байт каждый, таким образом, объем
одной дорожки состав-
ляет 4096 байт. Нужно
учесть еще, что ОС отво-
дит одну дорожку (ну-
левую) под системные
нужды, в частности хра-
нит там каталог дискеты.
Следовательно, можно
рассчитать количество
рабочей свободной обла-
сти для программ (см.
табл. 7).
Немалую роль играет качество магнитного покрытия. Если оно по-
вреждено, то ОС не сможет создать все 16 секторов. Особенно это важно для
TR-DOS, так как она не поддерживает работу с плохими секторами, то есть
секторами, которые попали на испорченное место дискеты. Система прове-
ряет качество .форматирования, считывая с каждой дорожки все получивши-
еся на ней сектора. По окончании форматирования TR-DOS выводит на
экран два числа: первое — это рабочая емкость дискеты в секторах; второе,
отделенное от первого символом наклонной черты (/) —количество секторов,
считанных с дискеты. Если эти числа не совпадают, то использовать такую
дискету очень рискованно.
Для подготовки дискет к работе не обязательно пользоваться командой
FORMAT. Можно использовать специальную системную программу Disk Control
Utility (DCU), возможности которой существенно расширяют предоставляемые
TR-DOS. Описание этой программы Вы можете найти в разделе «Сервисные
программы».