Главная Картинки Статьи Скачать Ссылки

Операционная система и программное обеспечение
(часть 2)
Пользователям о "Корвете". Журнал "Радио" №12/1989г., стр.33-36

Мы уже рассмотрели команды управляющих символов, а также встроенные команды, входящие в операционную систему СР/М. На очереди - транзитные.
Транзитных команд может быть очень много. Они хранятся постоянно на диске в виде командных файлов. По существу, любая программа в машинных кодах может являться транзитной, а все файлы, содержащие их, имеют расширение своего имени COM. Приведем примеры таких стандартных программ:
STAT предоставляет пользователю информацию о состоянии диска (от англ. status - состояние);
PIP осуществляет обмен данными с периферийными устройствами. Она необходима также при копировании системного диска;
ED команда позволяет пользователю запустить текстовый редактор (от англ. editor - редактор);
SUBMIT предоставляет возможность запустить последовательность команд, указанных в заранее подготовленном файле;
ASM позволяет произвести перевод программы, написанной на языке Ассемблер при помощи редактора ED или какого-нибудь другого, в шестнадцатиричный файл с расширением HEX. Его, в свою очередь, можно преобразовать в командный файл при помощи программы LOAD;
LOAD команда используется для преобразования шестнадцатиричного файла в файл, содержащий машинные коды;
DDT позволяет проследить процесс работы различных программ в машинных кодах и, таким образом, выявить имеющиеся в них ошибки (от англ. dinamic debugging tool - динамическая отладка программ);
DUMP используется для вывода на экран дисплея или на принтер в шестнадцатиричном формате содержимого командных файлов;
FORMAT форматирует диски (от англ. format - форматировать);
SYSGEN копирует ОС с диска на диск (от англ. system generation - создание системы).

Перечислим функции команды STAT.
  1. Прежде всего, она может выводить на экран объем свободного пространства на всех используемых в настоящее время дисках и режим доступа к дискам. Напомним, что режим доступа бывает двух типов: R/O (от англ. read only - только чтение) и R/W (от англ. read write - чтение и запись). На диск с доступом R/O нельзя ничего записывать. Это значит, что вы не можете ни дополнить содержимое этого диска, ни удалить какие-либо файлы. С такого диска информацию можно только читать. Доступ R/W означает, что с диска можно читать и можно записывать на него информацию.
  2. STAT может выводить на экран характеристики как отдельных файлов, так и их групп. Для этого в качестве операнда нужно использовать соответствующее имя или, применяя глобальные символы, обозначить группу файлов.
  3. Эта команда используется для защиты отдельных файлов и целых их каталогов (присваивая им статус R/O).
  4. Она позволяет создавать скрытые файлы. С помощью команды STAT им присваивается специальный атрибут, и имя файла не будет выводиться на экран по команде DIR из соображений секретности.
  5. Команда STAT позволяет посмотреть номер активной области, определенный командой USER.
  6. Обычно стандартным периферийным устройствам присвоены некоторые логические имена. Например, консоль - CON: принтер (цифропечать) - LPT: или PRT: и т. д. По команде STAT вы можете узнать, какие логические имена присвоены, а также изменить их, если есть желание, или завести новые из списка разрешенных имен, который также выводится по команде STAT.
Разберем эти функции по порядку. Файл STAT.СОМ должен находиться в директории вашей активной области. Попробуем набрать команду STAT без операндов. На экране тут же появятся cледующие строки:
A>STAT
A:R/W SPACE: 140K
А>

Программа STAT вывела на экран сообщение о статусе диска R/W (или R/O) и размере свободного пространства. Если во все дисководы вставлены диски, то подобная информация появится обо всех дисках. Отметим, что по команде STAT будут просмотрены остальные диски, только если к ним уже обращались с какой-либо командой или был выполнен "теплый" старт системы. Другими словами, ОС должна знать, что мы вставили диски в дисководы.
Если в качестве операнда у команды STAT используется имя какого-либо файла, то мы можем получить информацию о его размерах и статусе. Например, если вы интересуетесь размером файла ТЕХТ.ТХТ, то по команде STAT TEXT.TXT вы получите следующую информацию:
A>STAT ТЕХТ.ТХТ 
RECS   BYTES  ЕХТ  АСС 
110    14К    1    R/W А:ТЕХТ.ТХТ 
BYTES REMAINING ON A:476K 
A>

Первая строка этого сообщения - названия столбцов. Вторая - содержание соответствующих столбцов. На третьей строке указывается свободное пространство на диске. В этом сообщении содержится информация о количестве записей в данном файле, его размере и уровне защиты.
Разберемся в том, какой смысл имеют выводимые на экран характеристики.
Запись является единицей объема информации, хранимой на диске. В СР/М длина записи равна 128 байтам. Число, указанное в графе RECS, равно количеству 128-байтных записей в файле, а указанное в графе BYTES представляет собой округленный размер файла в килобайтах.
Еще одной единицей измерения объема файлов в СР/М является экстент. Он равен 16К. Графа ЕХТ содержит размер файла в экстентах. Приращение в этой графе может быть только целым. Как правило, эту цифру можно не принимать во внимание.
Код, напечатанный в столбце АСС, представляет собой статус защиты файла: R/W или R/O.
В команде STAT можно использовать глобальные символы * и ?.
Мы многократно упоминали, что файлы можно защищать. Но пока непонятно, как это сделать. Сейчас пришло время овладеть этой премудростью. Для установки статуса защиты необходимо в качестве второго операнда команды STAT использовать $ R/W или $ R/O.
В качестве примера сделаем какой-либо файл защищенным от записи. Пусть этот файл называется ТЕХТ.ТХТ. Тогда ваши действия должны быть следующими:
A>STAT ТЕХТ.ТХТ $ R/O 
ТЕХТ.ТХТ SET TO R/O
А>

Разумеется, все эти операции нужно произвести с файлом, имеющимся на диске. В противном случае появится сообщение об ошибке.
Команда STAT позволяет временно защитить от записи весь диск. Эта защита сохраняется только пока диск вставлен в дисковод, например:
A>STAT A:-R/O
А>

Для снятия защиты необходимо провести "теплый" или "холодный" старт системы.
Разберемся еще с одной интересной функцией команды STAT. Предположим, что вы не хотите, чтобы кто-либо видел некоторые ваши файлы в директории. Команда STAT поможет вам спрятать их и сделать невидимыми. Это также бывает полезно, чтобы не выводить каждый раз в оглавлении имена системных файлов. Для того чтобы это сделать, используют операнд $ SYS.
A>STAT STAT.СОМ $ SYS
STAT.COM SET TO SYS
А>

Теперь по команде DIR вы не увидите в оглавлении файл STAT.COM. Атрибут $ SYS может быть назначен произвольному числу файлов при использовании глобальных символов * и ?. Для отмены статуса "скрытый" используется атрибут $ DIR, например:
A>STAT STAT.COM $ DIR 
STAT.COM SET TO DIR 
A>

Команда STAT может выдавать информацию о характеристиках дисков. Например, сообщение о двустороннем диске с двойной плотностью записи при емкости 1024К на сектор имеет вид:
A>STAT DSK:
     A: DRIVE CHARACTERISTICS 
9600: 128BYTE RECORD CAPACITY 
1200: KILOBYTE RECORD CAPACITY 
 256: 32BYTE DIRECTORY ENTRIES 
 256: CHECKED DIRECTORY ENTRIES 
 128: RECORDS/EXTENT 
  16: RECORDS/BLOCK 
   4: SECTORS/TRACK 
   4: RESERVED TRACKS 
A>

Поясним смысл каждого сообщения.
Теперь подробней рассмотрим команду PIP, предназначенную для обмена информацией с периферийными устройствами.
Для того чтобы пользоваться командой PIP, необходимо иметь на вашем диске в активной областа файл PIP.COM. Мы исходим из того, что файл PIP.COM на вашем диске имеется.
Перечислим функции команды PIP: создание копии файла на текущем диске; копирование одного файла или группы файлов на другие диски; объединение нескольких файлов в один файл; обмен данными между дисками и другими устройствами.
Команда PIP имеет еще много дополнительных возможностей, но здесь мы не будем их рассматривать. Интересующихся отошлем к книге "Операционная система СР/М", написанной М. Уэйтом и Дж. Ангермейером. Перевод ее вышел в издательстве "Радио и связь" в 1986 г.
Попробуем работать с командой PIP. Сначала наберите PIP и нажмите клавишу ВК, после чего на экране появится:
А>РIР
*

Вы видите, что вместо системного промпта А> появился новый промпт *. Это так называемый промпт команды PIP. Его появление означает, что команда загружена и готова к работе. Вспомним теперь, как копировать файлы. Сначала мы должны указать имя копии "приемника" (от англ. destination), затем имя "источника" (от англ. source). Если мы объединяем много файлов в один, их имена перечисляются одно за другим через запятую. В этом случае на экране должна быть набрана следующая строка:
* D:FILENAME=S:FILENAME1,FILENAME2,...

Здесь D: - выходное устройство - может быть не только диском, но и логическим устройством. То же можно сказать и про входное устройство S:. Имена файлов могут быть опущены, однако если идет работа с дисками, хотя бы одно имя файла должно присутствовать. Эту малопонятную фразу не следует рассматривать как нечто непостижимое для понимания. Обычно, следуя простой логике, нетрудно сообразить, когда имя файла необходимо указывать, а когда нет.
Исследуем теперь по порядку упомянутые функции команды PIP.
Начнем с копирования файлов на одном и том же диске и с диска на диск. Для этого нужно сообщить программе имя копируемого файла. Допустим, что у вас имеется файл PROG.TXT. Если вы хотите создать его копию под именем PROG1.TXT, то в этом случае в ответ на промпт команды PIP вы можете ответить:
* A:PROG1.TXT=A:PROG.TXT

В этом случае необходимо указать имена двух файлов источника (A:PROG.TXT) и копии (A:PROG1.TXT). Если диск A: - текущий, его имя можно не указывать.
Для пользователей, имеющих достаточное количество дисков, возможно копирование с одного диска на другой, формат записи команды тот же, только нужно указать, с какого диска на какой идет копирование. Если ваш файл находится на диске A:, и этот диск текущий, вы должны набрать команду:
* B:PROG.TXT=PROG.TXT

Для изменения имени файла равноправными командами являются:
* B:PROG.TXT=PROG.TXT
* В:=PROG.TXT
* B:PROG.TXT=A:

Вас, наверное, волнует вопрос, как выйти из команды PIP и вернуть на экран промпт СР/М? Очень просто. Нажмите клавишу ВК.
Для копирования нескольких файлов можно использовать глобальные символы ? и *.
Возможно, у вас возник вопрос: что будет, если файл, который вы указали как выходной, уже существует на диске? PIP просто запишет на то же место новую информацию. А как быть с защитой? Если файл имел статус R/W, то он просто перепишется. Если же статус был R/O, в этом случае PIP сообщит, что файл уже существует и предназначен только для чтения. После этого вам нужно будет ответить на вопрос, стирать его или нет. Если вы ответите N, то копирования не произойдет и все останется, как было. Ответив Y, вы сотрете старый файл и запишите на его место новый. Вообще, полезно внимательно читать то, что сообщается вам на экране дисплея.
Отметим еще одну важную особенность команды PIP. Она копирует только те файлы, которые можно увидеть в каталоге при помощи команды DIR. Поэтому, если вы присвоили файлу статус SYS, своевременно измените его на DIR при помощи команды STAT.
Пользоваться командой PIP можно двумя способами. Вы либо сразу указываете в командной строке всю последовательность действий, либо, набрав PIP и нажав клавишу ВК, последовательно вводите их. В первом случае после самой команды через пробел вводятся ваши требования, например, копирования трех файлов в один:
A>PIP B:PROG.TXT=A:PROG1.TXT,PROG2.TXT,PROG3.TXT
А>

Обратите внимание, что в этом случае сразу появляется промпт СР/М, а не PIP.
Команда PIP позволяет также выводить содержимое файлов на стандартные устройства. Например, если вы хотите ввести какие-либо данные с консоли в файл TEST.TXT, необходимо ввести команду:
A>PIP TEST.TXT=CON:

После этого программа переходит к процессу обмена консоли с диском: все, что вы набираете на клавиатуре, записывается на диск. Для окончания этого процесса необходимо ввести символ CTRL-Z.

Мы не рассматривали здесь такие программы, как DDT, ASM, LOAD, SAVE и т. д. Эти программы обычно нужны системным программистам, работающим на языке Ассемблер.
Перейдем теперь к другим программам. Начнем с Бейсика.
Бейсик - это язык, который должен обязательно входить в состав программного обеспечения любого персонального компьютера. Для нашего компьютера был специально написан интерпретатор языка Бейсик, который с точки зрения пользователя не отличается от языков Бейсик фирмы "Microsoft", являющихся стандартными. Бейсик, написанный для ПК"Корвет", является подмножеством языков Бейсик фирмы "Microsoft" и существует в двух версиях объемами 16 и 24 Кбайт, что оставляет еще большой запас в пределах возможных 96 Кбайт для дальнейшего расширения. Интерпретатор языка находится в машине резидентно, не требуя никаких устройств внешней памяти, и пользователь получает его в свое распоряжение при включении компьютера в сеть.
Теперь остановимся на программных средствах, имеющихся в распоряжении пользователя "Корвета", на возможностях, предоставляемых операционной системой СР/М-80. Если начать с программ, необходимых массовому пользователю, то можно выделить три типа. Это редактор текста, а также и средство для обработки архивов и табличной информации. В качестве редактора текста в "Корвете" используется отечественный редактор "Супертекст", являющийся аналогом одного из наиболее мощных редакторов "Final Word". Настоящая статья была подготовлена с помощью редактора "Супертекст" на "Корвете".
Для обработки архивов можно использовать широко известную базу данных dBase II, а для работы с таблицами также очень популярную программу Multiplan фирмы "Microsoft". Что касается системных программных средств, выбор их чрезвычайно широк. Существуют различные ассемблеры, перемещающие загрузчики, отладчики, пакеты утилит. Имеются компиляторы с таких языков высокого уровня, как фортран, Паскаль, Си, Ада, форт, Лисп, ПЛ/М и других. Основным языком для разработки прикладных программ для "Корвета" является "Си". В настоящее время разработана библиотека графических процедур для языка "Си", которая делает в полной мере доступными программисту преимущества аппаратных средств "Корвета". Например, одна из функций библиотеки реализует так называемые спрайты (это маленькие объекты типа стрелок или игровых персонажей), получение которых без специальных заказных БИС считается невозможным. В нашем компьютере реализованы спрайты со скоростью перемещения до 1 - 2 мс на один шаг.
В заключение скажем несколько слов о том, кто занимается производством нашего компьютера. Основным производителем является Бакинское производственное объединение "Радиостроение". В Москве производством "Корвета" заняты опытно-экспериментальное производство Московского экспериментально-вычислительного центра ГКВТИ "ЭЛЕКС" и кооператив "ЭЛИН".

C. Ахманов, Н. Рой, К. Скурихин