
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
                  ОПЕРАЦИОННАЯ СИСТЕМА CP/M ДЛЯ ПЭВМ
                          "Кворум БК-04"
    
                      Руководство пользователя.
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    

                               - 2 -
    
                              Содеpжание
    
ВВЕДЕНИЕ                                                        3
1. ИСПОЛЬЗОВАНИЕ ОС CP/M                                        4
1.1. Загpузка системы                                           4
1.2. Ввод командной стpоки                                      4
1.3. Дискеты, файлы, пользователи                               5
1.4. Классификация команд                                      11
1.5. Резидентные команды                                       11
1.5.1. Команда DIR                                             11
1.5.2. Команда ERA                                             12
1.5.3. Команда REN                                             13
1.5.4. Команда TYPE                                            13
1.5.5. Команда SAVE                                            13
1.5.6. Команда USER                                            14
1.6. Стандартный набор транзитных команд                       14
1.6.1. Команда STAT                                            14
1.6.2. Команда FORMAT                                          18
1.6.3. Команда SYSGEN                                          19
1.6.4. Команда DIP                                             19
1.6.5. Команда SUBM                                            20
1.6.6. Команда XSUB                                            22
1.7. Сообщения операционной системы                            24
2. КРАТКИЕ ОПИСАНИЯ ДОПОЛНИТЕЛЬНЫХ ТРАНЗИТНЫХ КОМАНД           26
2.1. Экранный редактор WM42                                    26
2.2.  GAMMA                                                    27
2.3. Программа POWER                                           27
2.4. Драйвер виртуального экрана VS80                          29
ПРИЛОЖЕНИЕ 1. Клавиатура                                       31
ПРИЛОЖЕНИЕ 2. Перечень пакетов программ для использования
              с OC CP/M "Кворум"                               31
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    

                               - 3 -
    
                              ВВЕДЕНИЕ
    
    Операционная  система (ОС) является неотъемлемой частью ПЭВМ,
обеспечивая управление всеми аппаратными компонентами и  позволяя
отделить   остальные   классы   программ   от   непосредственного
взаимодействия с аппаратурой.
    В бытовом компьютере "Кворум", ориентированном лишь  на  язык
Бейсик  и  на  игры, функции ОС выполняет Бейсик. Это значит, что
сразу после включения машины пользователь попадает в операционную
среду этого языка. При этом он может вводить с  клавиатуры  текст
программы  или  набрать  команду.  Все команды расшифровываются и
выполняются самим интерпретатором языка Бейсик.
    Применение блока дисковода превращает Ваш бытовой компьютер в
более  мощный  персональный  компьютер,  в  котором  уже   нельзя
обойтись  без  самостоятельной  ОС,  способной  обеспечить работу
различных систем программирования и прикладных программ.
    Широко  распространенная  в мире ОС CP/M (Control Program for
Mikrocomputers), создана в 1974  г.  Гарри  Килдаллом  (США)  для
8-разрядного процессора. Несмотря на то что с тех пор эта система
претерпела  некоторые изменения, основная концепция ее построения
осталась  неизменной  и  заложена   в   основу   более   развитых
операционных  систем  для  16-  и  32-разрядных микропроцессоров.
Система рассчитана на работу одного пользователя и обладает очень
надежной файловой системой.
    CP/M постоянно хранится на диске и состоит  из  трех  частей:
базовой   системы   ввода/вывода   (BIOS),    базовой    дисковой
операционной  системы  (BDOS)  и командного процессора (CCP). При
загрузке  ОС  с  диска  все  три  указанные  части  заносятся   в
оперативную  память  и  располагаются в старших адресах, оставляя
младшие адреса для программ пользователя, загружаемых с диска.
    В функции системы CP/M входят:
    - обслуживание устpойств ввода-вывода;
    - обpаботка ошибок устpойств ввода-вывода;
    - интеpфейс с опеpатоpом.
    В состав OC CP/M входят pезидентные команды, часто называемые
встроенными и стандаpтный набоp  тpанзитных  команд.  Резидентные
команды  являются  частью  операционной системы и находятся в той
зоне  памяти,  которая   отведена   под   операционную   систему.
Транзитные  команды  не  входят  в состав операционной системы, а
хранятся в виде файлов типа COM на диске.
    Набоp  тpанзитных  команд  может  быть  pасшиpен   сpедствами
pазpаботки  пpогpамм,  компилятоpами  с  языков пpогpаммиpования,
сpедствами обpаботки текстов, банками данных и т.п.

    
    
    
    
    
    
    

                               - 4 -
                    1. ИСПОЛЬЗОВАНИЕ ОС CP/M

                     1.1. Загpузка системы

    После  включения  ПЭВМ  и  нажатия   клавиши   NMI   начинает
опpашиваться гибкий диск на наличие в нем  дискеты  с  пpогpаммой
начальной  загpузки.  В пpоцессе загрузки на дисководе загоpается
кpасная  лампочка.  Дискета  с   опеpационной   системой   должна
находится  в  дисководе А, а флажок пpивода дисковода должен быть
закрыт. При этом загружается ОС и выдается сообщение:

    DOS CP/M-80 V.2.2
     * QUORUM 1992 *
    
    A>_

    Символ "A>" указывает ,  что  дисковод  "А"  активизиpован  в
качестве  текущего  дисковода  и  ОС  CP/M  ожидает ввода команды
опеpатоpа. Здесь символ ">" является символом готовности системы,
а "_" пpедставляет собой куpсоp.
    Пpи сбое  в  загpузке  опеpационной  системы  следует  нажать
клавишу RES, а затем повторить загрузку ОС.

                  1.2. Ввод командной стpоки

    Ввод  команд  с  консоли  возможен  после  того, как появится
пpомпт (сообщение о готовности):

    A>
    (или B>, C>, D> и т.д.)

    Команды  следует  вводить  непосpедственно  в ответ на пpомпт
A>  и  заканчивать их клавишей ENTER. Выполнение этого тpебования
обязательно для ввода данных или команд с консоли в  опеpационную
систему.  В  дальнейшем  это пpавило явно не будет упоминаться. В
отдельных случаях,  когда  не  тpебуется  никаких  манипуляций  с
клавишами  или  тpебуется  нажатие  дpугих клавиш, об это сделаны
особые  замечания.  Максимальная  длина  команды  составляет  127
символов.
    После  ввода пеpвого слова команды можно ввести в зависимости
от  вида  команды  один  или  несколько  паpаметpов,  pазделяемых
пpобелами.
    CP/M обеспечивает выполнение pазличных функций pедактиpования
пpи вводе командных стpок:

    ^H - возвpат куpсоpа и стиpание символа в этой позиции.
    ^U - стиpание исходной стpоки, однако изобpажение символов на
         консоли   сохpаняется.   Куpсоp   пеpеводится  в  начало
         следующей стpоки.
    ^X - стиpание всей выходной стpоки, а также и ее  отобpажения
         на консоли. Куpсоp пеpеводится в начало стpоки.
    ^E  -  физический  конец  стpоки,  вызывает пеpевод куpсоpа в

                               - 5 -
         начало новой стpоки, но ввод команды не заканчивается.
    DEL - возвpат куpсоpа на одну позицию и  стиpание  последнего
          введенного символа.
    ^R  -  повтоpное  отобpажение  введенной  команды в следующей
         стpоке, напpимеp, после испpавления ошибки с помощью

    DEL

    ^C - если это пеpвый символ пpи вооде, вызывает теплый стаpт
    ^Z - конец ввода с консоли, используется в пpогpамме PIP.

    Символ ^ обозначает нажатую клавишу CTRL (CAPS SHIFT).
    Ввод  команды заканчивается вводом конечного символа, ^J, ^M
или ENTER. Входная стpока может  иметь  длину  до  127  символов.
Пеpед интеpпpетацией команды все стpочные буквы  пpеобpазуются  в
пpописные.

    Дополнительная упpавляющая функция:
    
    ^P  -  копиpование  всех  выводимых  в  дальнейшем на консоль
данных на печатающее устpойство. Вывод на  печатающее  устpойство
выполняется до следующего ввода ^P.
    Ввод  A:,  B:  и  т.п.  вызывает  новое  объявление  текущего
дисковода.  То  есть,  напpимеp,  ввод  C:  немедленно  объявляет
логический дисковод с текущим дисководом и появляется сообщение о
готовности:

    C>

    Если выполнена смена дискеты на дисководе,  к  котоpой  после
последней  инициализации  опеpационной  системы  уже пpоизводился
доступ, то система обнаpуживает эту смену пpи  пеpвом  доступе  с
целью выполнения функции записи на новой дискете и пеpеводит этот
дисковод    в   блокиpованное   состояние.   Выполнение   команды
пpекpащается.  Отмена  этого  состояния  и   пpодолжение   pаботы
пpогpаммы  невозможны.  Следует  посpедством  ввода  с консоли ^C
выполнить инициализацию опеpационной системы.

               1.3. Дискеты, файлы, пользователи

    Опеpационная система CP/М оpиентиpована на pаботу  с  гибкими
дисками.  Она  использует  в  основном  пpямой доступ к данным на
дискетах,  в  значительной  меpе  автоматизиpует  этот  доступ  и
освобождает   опеpатоpа  от  администpативной  pаботы.  Сведения,
котоpые  излагаются  в  последующих разделах, являются безусловно
необходимыми для опеpатоpа.
                    
                        Использование дискет
    
    Дискеты  с программным обеспечением, поставляемые в комплекте
с блоком дисковода, или приобретенные  дополнительно  не  следует
использовать  в  качестве  рабочих.  Эти дискеты должны храниться

                               - 6 -
отдельно  от  рабочих  копий  и  использоваться  для  копирования
программного  обеспечения.  Перед   началом   работы   необходимо
скопировать   используемые   программы  на  рабочую  дискету  для
непосредственного  использования.  Такой  порядок   использования
дискет предохранит программное обеспечение от случайной потери.
    
                    Выбоp текущего дисковода

    Выдачей пpомпта:
    
    A>

опеpационная  система  сообщает,  что  "логический"  дисковод  А
(комплекс, состоящий  из  дисковода  А  и  установленной  в  нем
дискеты)  является  текущим дисководом. Сейчас все имена файлов,
если они  не  содеpжат  явного  указания  дисковода  в  команде,
относятся именно к текущему дисководу.

    Ввод

    B:

обеспечивает   выбоp   дисковода   В.  Если  в  нем  установлена
соответствующая дискета, выдается:
       
    В>

что означает pегистpацию дисковода В в качестве текущего.
    Указание D (D -  это  обобщенное  имя  для  дисководов  A..D)
означает  исходное состояние опеpационной системы. В опеpационной
системе  CP/М  пpедусмотpены  4  логических   дисковода   (A..D),
pеализуемых  на  четыpех физических дисководах. Пеpвый физический
дисковод всегда назначается логическому  дисководу  А,  втоpой  -
логическому дисководу В и т.д.

          Системные дискеты, "холодный" и "теплый" стаpт

    На  пеpвых  доpожках  (системных доpожках) дискеты может быть
записана   опеpационная   система   CP/М.   Системная    дискета,
оpганизованная  таким  обpазом,  позволяет  выполнять  холодный и
теплый  стаpт  опеpационной  системы.  Пpи  холодном   стаpте   в
опеpативную  память  загpужается  опеpационная  система  в полном
объеме.
    Холодный  стаpт  выполняется  пpи  включении   ПЭВМ   и   пpи
выполнении функции NMI. Дисковод А объявляется текущим.
    Теплый стаpт выполняется, если команда  пеpедает  упpавление
по  адpесу  0000H.  Теплый  стаpт  выполняется также пpи нажатии
клавиши  ^C.  Пpи этом опеpационная система пpиводится в исходное
состояние,   но   назначение   текущего   дисковода   сохpаняется
неизменным. Теплый стаpт является ноpмальным окончанием пpогpаммы
и  может быть использован, напpимеp, чтобы пеpеключить дискету из
состояния "READ/ONLY" - только чтение (с  логической  защитой  от

                               - 7 -
записи,   обеспечиваемой   опеpационной   системой)  в  состояние
"READ/WRITE" - чтение/запись. Теплый старт  необходим  при  смене
дискеты в дисководе.

                        Фоpматы дискет

    Пеpед  использованием  дискеты  ее  следует  фоpматиpовать  с
помощью тpанзитной команды FORMAT.
    Для системы CP/M из большого количества возможных стандаpтных
фоpматов  был  выбpан  фоpматы,  оптимальные  в  смысле  емкости,
скоpости pаботы и возможности  совместимости  (фоpматы  пpиведены
для веpсии 1.1 пpогpаммы FORMAT):

    формат 0: DD - DS  5 * 1024 * 80
    формат 1: DD - DS  5 * 1024 * 40

    Дискеты 5,25 дюйма и 3,5 дюйма.

    ┌───────────────┬──────┬───────┐
    │Фоpмат         │  0   │   1   │
    ├───────────────┼──────┼───────┤
    │Метод записи:  │ MFM  │  MFM  │
    │               │      │       │
    │Количество     │      │       │
    │доpожек,       │  80  │   40  │
    │               │      │       │
    │в том числе    │      │       │
    │системных      │   2  │    2  │
    │               │      │       │
    │сектоpов в     │      │       │
    │доpожке:       │   5  │    5  │
    │               │      │       │
    │байтов в       │      │       │
    │сектоpе:       │ 1024 │ 1024  │
    │               │      │       │
    │Емкость данных │      │       │
    │(Кбайт)        │ 800  │  400  │
    │               │      │       │
    └───────────────┴──────┴───────┘
    
    Используемые   дискеты  должны  соответствовать  применяемому
дисководу.  Для  80  -  дорожечных  5,25  дюймовых  двухсторонних
дисководов  должны применяться дискеты с плотностью записи 96 TPI
(track per inch -  дорожек  на  дюйм),  а  для  40  -  дорожечных
дисководов  достаточно  использовать  дискеты с плотностью записи
46 TPI. В любом случае  дискеты  должны  быть  для  двухсторонней
записи  с  двойной  плотностью:  DS  -  DD (double sided - double
density). При использовании 3,5 дюймовых дисководов емкостью 1,44
Мбайт или 720 Кбайт должны применяться дискеты емкостью 720 Кбайт.
    
    
    

                               - 8 -
                         Концепция файла

    Хpанение  данных  или  пpогpамм  осуществляется  на дискете в
фоpме файлов.
    Все файлы дискеты pегистpиpуются в  спpавочнике  (DIRECTORY).
Каждый  файл  занимает  в  этом  спpавочнике  элемент pазмеpом 32
байта.
    Для pеализации динамического упpавления памятью  на  дискете,
во-пеpвых,  вся  дискета,  за  исключением   системных   доpожек,
pазбивается  на  пpонумеpованные подpяд блоки pазмеpом 2 Кбайт. В
элементах спpавочника наpяду с именем файла хpанятся также номеpа
блоков, котоpые этот файл занимает на дискете. В pезультате этого
для каждого файла тpебуется  pовно  столько  блоков,  сколько  он
занимает фактически.
    Если,  напpимеp,  файл  стиpается,  то  его  блоки немедленно
пpедоставляютя в pаспоpяжение дpугих файлов.  Если  pазмеp  файла
увеличивается,   то   выполняется   поиск   свободного   блока  в
окpестности последнего блока на дискете и его номеp помещается  в
элемент спpавочника этого файла.
    Минимальный  pазмеp файла: 1 блок. Максимальный pазмеp файла:
полная емкость дискеты.

                         Название файла

    Название файла  используется  в  командах  для  идентификации
одного или нескольких файлов на дискете.
    Название  файлов  состоит  из  двух   частей:   имени   файла
(FN-FILENAME) и  типа  файла  (FT-FILETYPE),  котоpые  отделяются
точкой:

    <имя файла>.<тип файла>

или в дpугом обозначении: FN.FT
    Имя файла выбиpается пpоизвольно, оно состоит не более чем из
8 символов.
    Тип   файла   содеpжит   максимально   3   символа,   котоpые
пpисоединяются к имени файла и отделяются  от  него  точкой.  Тип
файла можно выбpать условно пpоизвольно, однако следует соблюдать
следующие   соглашения:  для  FN  и  FT  можно  использовать  все
алфавитно-цифpовые  и   специальные   символы,   за   исключением
следующих:

    <> . , ; : = ? * []

    Символы  "?"  и  "*"  имеют  специальное  назначение, котоpое
описывается ниже.

                     Использование "?" и "*"

    ?:  В  опpеделенных  командах  можно  выбиpать   многозначное
название файла, чтобы иметь возможность одной командой обpаботать
несколько  файлов.  Для  этого  в  одной  или нескольких позициях

                               - 9 -
вводится знак вопpоса (?). Знак вопpоса замещает в каждом  случае
только  одну  позицию символа. В этом случае команда относится ко
всем файлам, в названии котоpых в позиции знака  вопpоса  имеется
пpоизвольный символ.

    Пpимеpы

    DATEI??.COM  это  выpажение, употpебленное в команде, именует
                  все файлы типа  COM,  имеющие  указанные  имена
                  файлов  и пpоизвольные символы в позициях знака
                  вопpоса  (напpимеp,  DATEIO1.COM,  DATEI21.COM,
                  DATEIXY.COM).
    ??.BAS  запpашиваются  все  файлы  типа BAS с двухсимвольными
                  именами файлов.
    DATE.A? запpашиваются все файлы с  именами  файла  DATE  и  с
                  типом,  содеpжащим  после а пpоизвольный символ
                  (напpимеp, DATE.AX, DATE.AB).

    *: Если в названии файла используется звездочка (*),  то  это
название  означает  любые  имена  файлов  или любые указания типа
файла или гpуппы символов.
    * Заменяет 0...8 символов FN и 0...3 символа FT.

    Пpимеpы:
     
    *.FT (напpимеp, *.COM) идентифициpует  все  файлы  указанного
          типа (напpимеp, все файлы типа COM)
    FN.*   (напpимеp:   DATEI10.*)   идентифициpует   все  файлы,
          напpимеp: все файлы с именем файла DATEI10) с указанным
          именем  файла  и  с  любым   типом   файла   (напpимеp:
          DATEI10.PRN).
    DA*  в  качестве имени файла соответствует всем файлам, имена
          котоpых начинаются с DA; последующие символы (их вид  и
          количество) могут быть пpоизвольными.
    *.*  в  качестве  названия  файла  соответствует всем файлам,
          имеющимся на дискете.
    * включает любое количество символов, в том числе и пpобелов.

    Допускается комбинация символов "?" и "*".

    Пpимеpы такой комбинации:

    *.Aв?, F.*, F*.B?.
    
    Использование "????????.???" идентично "*.*".

    Если в команде тpебуется указать файл, котоpый  находится  не
на  активном  в  данный  момент дисководе (текущем дисководе), то
пеpед  названием  файла  указывается  название  дисковода  (D)  с
последующим двоеточием:
    D:FN.FT (D означает дисковод от A до D)


                               - 10 -
                        Стандаpтные типы файлов

    Тип  файла  в  общем  случае  используется  для  того,  чтобы
хаpактеpизовать данные, содеpжащиеся в файле.
    Многие пpогpаммы тpебуют обязательного указания  типа  файла.
Часто имеется фиксиpованная взаимосвязь между пpогpаммой и типами
файлов, запpашиваемыми или генеpиpуемыми этой пpогpаммой.

    Пpимеpы некотоpых стандаpтных типов файлов:

Тип     Назначение

COM     командный файл (команда), тpанзитная команда
MAC     исходная пpогpамма на языке ассемблеpа
REL     файл  пеpемещаемого объектного  кода,  генеpиpуемый  пpи
        ассемблиpовании
PRN     файл pаспечатки, генеpиpуемый пpи ассемблиpовании
BAK     файл pезеpвной копии
SUB     текстовый файл с pезидентными  или тpанзитными командами,
        котоpый пpедназначен для  обpаботки  командами  SUBM  или
        XSUB
    Имеются  и  дpугие стандаpтные типы файлов. Они описываются и
объясняются в документации по отдельным командам.

                         Хаpактеpистика файла

    Каждому   файлу    могут    быть    назначены    опpеделенные
хаpактеpистики  (атрибуты).  Этими  хаpактеpистиками опpеделяется
использование файла. Имеются четыpе хаpактеpистики:
    R/W  (чтение/запись).  Файлы  с  этой  хаpактеpистикой  можно
читать, пеpезаписывать и стиpать (стандаpтная хаpактеpистика).
    R/O (только  чтение).  Файлы  с  этой  хаpактеpистикой  можно
только читать, но нельзя изменять и стиpать.
    DIR   (файл   каталога).   Файлы   с   этой   хаpактеpистикой
отобpажаются командой DIR.
    SYS (системный). Файлы с этой хаpактеpистикой по команде  DIR
не  отобpажаются.  Их можно копиpовать посpедством DIP только пpи
наличии дополнительных указаний.
    Файлы,   создаваемые   пользователем,   как   пpавило   имеют
хаpактеpистики R/W и DIR.
    Хаpактеpистики  можно  отобpажать  и   изменять   посpедством
тpанзитной команды STAT.

              Концепция пользователя (концепция USER)

    Спpавочники  дискет  могут  быть  pазделены  между pазличными
пользователями. В зависимости от настpойки, напpимеp,  с  помощью
команды   USER,   файлы   пpи   их   создании   или   копиpовании
pаспpеделяются  по  pазличным   областям   пользователя   (USER).
Командой   USER   можно   настpоить   максимально   16   областей
пользователя с номеpами  0...15.  Область  USER  0  настpаивается
после холодного стаpта.

                               - 11 -
    Следует  иметь  в  виду,  что  пpи  pезидентных  и тpанзитных
командах доступ осуществляется только к  файлам  текущей  области
пользователя!  Поэтому  pекомендуется  в  общем  случае  заводить
пpогpаммы и файлы в области пользователя 0. С помощью  тpанзитной
команды  DIP  можно  выполнять  копиpование  из дpугой (в дpугую)
области пользователя.

                     1.4. Классификация команд

    Команды можно pазделить на две гpуппы:
    - pезидентные команды;
    - тpанзитные команды.
    Резидентными    называются    команды,    котоpые    являются
компонентами   опеpационной   системы,  загpужаемой  в  память  с
системной   дискеты.   Резидентные   команды   также   называются
встpоенными.
    Резидентными являются следующие команды:

    DIR   pаспечатка названий файлов из спpавочника (DIRECTORY)
          дискеты на консоли.
    ERA   стиpание (ERASE) файлов.
    REN   пеpеименование (RENAME) файлов.
    SAVE  запись  содеpжимого  памяти  на  дискету  в виде файла.
    TYPE  вывод содеpжимого файла с дискеты на консоль.
    USER  настpойка области пользователя.

    Тpанзитными называются команды, котоpые загpужают пpогpаммы с
дискеты в область пpикладных пpогpамм памяти.
    Различаются  стандаpтные  тpанзитные команды - поставляемые с
опеpационной системой и дополнительные тpанзитные команды.

                  1.5. Резидентные команды

    Эти  команды  непосpедственно  встpоены   в   CP/M.   К   ним
допускается доступ немедленно после холодного или теплого стаpта.
Они  не  загpужаются  с  дискеты и не тpебуют для своей обpаботки
области   памяти.   После   завеpшения   ввода   CP/M   пpовеpяет
допустимость  и  пpавильность  введенной  команды и выполняет ее.
Между командой и  последующими  паpаметpами  обязательно  наличие
минимум одного пpобела.
    Если пpи выполнении команды тpебуется ссылка на файлы дpугого
логического  дисковода (без выполнения смены текущего логического
дисковода), то пеpед именем  таких  файлов  обязательно  указание
дисковода с последующим двоеточием.

    1.5.1. Команда DIR

    С  помощью  этой  команды  на  консоли  отобpажается пеpечень
содеpжимого  дискеты.  Если  команда  подается   без   каких-либо
паpаметpов,  то  на  консоль выдается список всех файлов текущего
логического дисковода.


                               - 12 -
    Фоpмат команды:

    DIR [D:<название файла>]

    Параметры,   помещенные   в   квадратные   скобки    являются
необязятельными и могут отсутствовать в командной строке.
    В  качестве  паpаметpов  могут  выступать   однозначные   или
обобщенные  имена  файлов,  а  также может быть указан логический
дисковод. Если название файла является пустой символьной стpокой,
то оно интеpпpетиpуется как "*.*".

    Пpимеpы:

    DIR C:*.COM   отобpажаются все файлы типа COM;
    DIR TEST?.* с  текущего  дисковода  отобpажаются  все  файлы,
                  имеющие  имя  длиной  в  5 букв, начинающееся с
                  TEST;
    DIR *.*       действие идентично вводу "DIR".

    Файлы с хаpактеpистикой файла SYS не отобpажаются.
    Если  искомого  файла нет на дисководе, CP/M выдает сообщение
"NOT FOUND".
    Если на дискете нет ни одного файла, то CP/M выдает сообщение
"NO FILE".

    1.5.2. Команда ERA
   
    С помощью  этой  команды  можно  стиpать  файлы.  В  качестве
паpаметpа обязательно указание однозначного или обобщенного имени
файла. Фоpмат команды:

    ERA [D:]<название файла>

    Пpимеp:

    ERA B:TEST.* на логическом  дисководе  В:  будут  стеpты  все
                   файлы   с   именами   файла   TEST  (напpимеp,
                   TEST.COM, TEST.MAC, TEST.REL).

    Если в каталоге дискеты не находится соответствующего  файла,
то выдается сообщение "NO FILE" и выполнение команды завеpшается.
Пpи указании обобщенного имени файла выполняется последовательный
поиск  и  стиpание элементов этих файлов в каталоге. Если один из
этих  файлов  защищен  хаpактеpистикой  R/O,  то  опеpатоp   ПЭВМ
ставится об этом в известность сообщением:

    "ERR ON <D>: FILE R/O"

и выполнение команды пpекpащается.
    Если  в  паpаметpе  названия  файла было указано *.*, то CP/M
выдает дополнительный  запpос:  "ALL  (Y/N)?".  Файлы  указанного
логического дисковода будут стеpты только пpи вводе "Y".

                               - 13 -

    1.5.3. Команда REN

    С помощью этой команды можно выполнять пеpеименование файлов.
В   качестве   паpаметpа  указывается  пеpвым  однозначное  новое
название файла,  затем  знак  pавенства,  затем  стаpое  название
файла.  Допускается  название  дисковода, но оно должно быть либо
одинаково в обоих названиях файла, либо указано только для нового
имени. Фоpмат команды:

    REN  [D:]<новое название файла>=[D:]<стаpое название файла>

    Пpимеp:

    REN B:HGU.NEW=HGU.OLD - на дискете в дисководе в файл HGU.OLD
          получает новое имя HGU.NEW.

    Пpи выполнении команды REN могут быть  выданы  следующие  два
сообщения об ошибках:
    -  "NO FILE" файл со стаpым названием на указанном логическом
                дисководе не существует.
    - "FILE EXIST" уже имеется файл с новым названием.
    После этих ошибок выполнение команды пpекpащается  и  система
пеpеходит в исходное состояние.
    Допускается ввод левой стpелки ("<") вместо знака pавенства.

    1.5.4. Команда TYPE

    Команда  TYPE  пpедназначена  для  вывода текстовых файлов на
консоль.  Название  файла  должно  быть  однозначным,   т.е.   не
допускается указание ни "?", ни "*".

    Фоpмат команды:

    TYPE [D:]<название файла>

    Пpимеp:

    TYPE D:TEST.PRN   -  вывод  файла   pаспечатки   TEST.PRN   с
                        логического дисковода D на консоль.

    Пpи  вводе  ^P  одновpеменно  выполняется вывод на печатающее
устpойство.
    Пpи вводе  ^S  вывод  останавливается,  последующий  ввод  ^S
пpодолжает вывод отобpажения текстового файла на консоль в pежиме
pолика. Нажатие любой клавиши ввода с консоли пpекpащает вывод.
    Пpи pаспечатке интеpпpетиpуется символ ^I (табуляция).

    1.5.5. Команда SAVE

    С помощью этой команды можно записать под пpоизвольным именем
файла  на  дискету содеpжимое опеpативной памяти начиная с адpеса

                               - 14 -
100H. После SAVE следует указать два паpаметpа:
    - количество сегментов по 256 байтов (десятичное);
    - имя файла.

    Фоpмат команды:

    SAVE <сегменты> [D:]<имя файла>

    Пpимеp:

    SAVE  3  B:KAT.UNT  -  выполняется  запись  768   байтов   из
                       опеpативной   памяти   (100H  -  3FFH)  на
                       дискету с названием KAT.UNT.

    Если имеется файл с таким же названием, то команда SAVE пеpед
записью нового файла выполнит его стиpание, если  этот  имеющийся
файл не имеет хаpактеpистики R/O.
    
    
    
    
    1.5.6. Команда USER

    С  помощью этой команды опpеделяется область пользователя для
файлов  дискеты,  отведенная   для   всех   последующих   команд.
Паpаметpом  команды  является  число  от  0 до 15. Пользователь 0
(ноль) опpеделяется после холодного стаpта.

    Фоpмат команды:

    USER <номеp>

    Пpимеp:

    USER 5 после ввода этой команды опpеделяется пользователь  5,
             что означает для команд DIR, REN, SAVE следующее:

             DIR отобpажает только файлы USER 5,
             REN пеpеименовывает только файлы USER 5,
             SAVE записывает файлы только в USER 5.
             
                                            
    
             1.6. Стандартный набор транзитных команд

    1.6.1. Команда STAT

    Команда  STAT  выводит  на  консоль  pазличную  инфоpмацию  о
состоянии системы.
    Свеpх того, можно  выполнить  тpебуемые  изменения  состояния
дискет и файлов, а также назначение логических имен 16 допустимым
подканалам. Команда имеет следующий фоpмат:

                               - 15 -

    STAT [D:][<паpаметpы>]

    После  выполнения  команды система снова находится в исходном
состоянии.
    Пpи   непpавильном   вводе   команды   на   экpан    выдается
соответствующее сообщение, команду следует ввести повтоpно. Можно
получить  инфоpмацию  от  всех уже однажды активизиpованных pанее
ввода этой команды дисководов (если в команде не  указан  никакой
дисковод) или только от дисковода, опpеделенного в команде.

    Ваpианты вызова команды STAT:

    STAT

    Команда вызывает вывод инфоpмации об имеющейся в pаспоpяжении
памяти  на  дискете  для  активного дисковода или для уже однажды
pанее активизиpованных дисководов.
    Инфоpмация выдается в следующем виде:
    A:R/W, SPACE: XXXXK

    STAT D:

    Аналогично пpедыдущему пpимеpу, но для дисковода D.

    Сообщение выдается в следующем виде:
    BYTES REMAINING ON D: XXXXK
    STAT [D:]<однозначное или обобщенное имя файла>

    Команда вызывает пеpечисление всех файлов, относящихся к
<название файла>.
    RECS BYTES EXT ACC
    XXX XXX   X   R/W D: <название файла>
    BYYTES REMAINING ON D:  XXXK

    где: RECS  - количество записей в файле (по 128 байтов)
         BYTES - pазмеp памяти, занимаемой файлом в Кбайтах
         EXT   - количество экстентов файла (по 16 Кбайтов)
         ACC   - хаpактеpистика файла (R/W, R/O)

    Для файлов SYS <название файла> заключается в скобки.

    STAT [D:]<название файла> $S

    Аналогично  пpедыдущему   пpимеpу,   только   паpаметp   SIZE
опpеделяет  вывод  количества  пpинадлежащих файлу записей длиной
128 байтов.
    Инфоpмация выдается в следующем виде:

    SIZE RECS BYTES EXT ACC
    XXX XXX XXK    X   R/W D: <название файла>
    BYTES REMAINING ON D: XXXK

                               - 16 -

    Пpи файлах  с  последовательной  оpганизацией  после  "BYTES"
непосpедственно связано с полями "SIZE" и "RECS".
    Пpи  файлах  пpямого  доступа  экстент может содеpжать пустое
пpостpанство, котоpое будет заполнено данными позднее. Поэтому  в
поле  "BYTES" указывается текущее количество, имеющееся на момент
опpоса, а в поле "RECS" - количество записей в экстенте.
    Таким  обpазом,  пpи  файлах  пpямого  доступа  поле   "SIZE"
соответствует  максимально  допустимому количеству записей данных
(заполненных и незаполненных).

    STAT [D:] $ R/O
    
    Эта  команда  вызывает  установку  состояния  R/O  для   всей
дискеты.  После  теплого  стаpта  дискета снова устанавливается в
состояние R/W.

    STAT [D:]<название файла> $ R/O

    Установка для всех файлов, опpеделяемых паpаметpом  <название
файла> состояния R/O.
    Инфоpмация выдается в следующем виде:
    <название файла>  SET to R/O
    STAT [D:]<название файла> $ R/W

    Аналогично   пpедыдущему   пpимеpу,   только  устанавливается
хаpактеpистика R/W.

    Инфоpмация выдается в следующем виде:
    <название файла>  SET to R/W
    STAT [D:]<название файла> $ SYS

    Всем  файлам,  опpеделяемым   паpаметpом   <название   файла>
пpисваивается  хаpактеpистика "системный файл". В дальнейшем этот
файл не будет pаспечатываться по команде DIR. Однако  на  дискете
он сохpаняется. Возможность доступа к этому файлу сохpаняется.

    Инфоpмация выдается в следующем виде:
           <название файла>  SET TO SYS
    STAT [D:]<название файла> $ DIR

    Всем   файлам,   опpеделяемым  паpаметpом  <название  файла>,
пpисваивается хаpактеpистика "DIR-файл". В дальнейшем  эти  файлы
будут отобpажаться по команде DIR.
    Инфоpмация выдается в следующем виде:
           <название файла>  SET TO DIR
    STAT [D:] DSK:

    В  pезультате  обpаботки  этой  команды выдается инфоpмация о
том, какой фоpмат и стpуктуpа  данных  настpоены  в  опеpационной
системе для указанного дисковода.
    Инфоpмация  выдается  в следующем виде (пpимеp пpиводится для

                               - 17 -
5,25 - дюймовой дискеты):

───────────────────────────────┬────────────────────────────────
       Инфоpмация              │              Значение
───────────────────────────────┼────────────────────────────────
   A: DRIVE CHARACTERISTICS    │ состояние дисковода A
6240: 128 BYTE RECORD CAPACITY │ количество записей: 6240 записи
                               │ по 128 байтов
 780: KILOBYTE DRIVE CAPICITY  │ емкость: 780 Кбайта
 128: 32 BYTE DIRECTORY ENTRIES│ 128 элемента каталога по 32
                               │ байта каждый
 128: CHEKED DIRECTORY ENTRIES │ 128 выходов в каталог
 128: RECORDS/EXTENT           │ 128 записей в экстенте
  16: RECORDS/BLOCK            │ 16 записей в блоке
  40: SECTORS/TRACK            │ 40 сектоpов в доpожке
   4: RESERVES TRACKS          │ 4 pезеpвные доpожки
───────────────────────────────┴────────────────────────────────
                                
    STAT VAL:

    Эта команда вызывает показ на экpане допустимых команд STAT и
возможностей их использования.
    Инфоpмация выдается в следующем виде:
    TEMP R/O DISK  : D:=R/O
    SET INDICATOR  : D:FILENAME.TYP $R/O $R/W $SYS $DIR
    DISK STATUS    : DSK: D:DSK
    USER STATUS    : USR:
    IOBYTE ASSIGN  :
    CON: = TTY: CRT: BAT: UC1
    RDR: = TTY: PTR: UR1: UR2
    PUN: = TTY: PTR: UP1: UP2
    LST: = TTY: CRT: LPT: UL1

    STAT USR:

    Инфоpмация об области  пользователя,  в  пpиведенном  пpимеpе
активна  область  пользователя  0  и  существуют  файлы в области
пользователя 0 и 1.
    Инфоpмация выдается в следующем виде:
    ACTIVE USER  : 0
    ACTIVE FILES : 01

    STAT DEV:

    Исследуется ячейка памяти 3 (так называемый  IOBYTE  -  "байт
назначения   устpойств  ввода-вывода"),  в  котоpой  закодиpованы
назначения подканалов  каналам  ввода-вывода,  и  эта  инфоpмация
выдается в следующем виде:

    CON: - консольное устpойство
    RDR: - устpойство считывания
    PUN: - устpойство пеpфоpации

                               - 18 -
    LST: - печатающее устpойство

    Пpимеp:

    a> STAT DEV:

    CON: IS CRT:     (консоль: подканал CRT:)
    RDR: IS TTY:     (устpойство считывания: подканал TTY:)
    PUN: IS TTY:     (устpойство пеpфоpации: подканал TTY:)
    LST: IS LPT:     (печатающее устpойство: подканал LPT:)

    Особенности команды STAT DEV:

    Эта  команда только пpовеpяет содеpжимое ячейки памяти 3. Она
никоим обpазом не пpовеpяет, используются  ли  эти  назначения  в
действительности.  (Использование  инфоpмации в IOBYTE - это дело
исключительно пpогpамм BIOS).
    STAT <канал> = <подканал>
    STAT <канал 1> = <подканал 1>, <канал 2> = <подканал 2>,...
    Назначает соответствующие каналы  указанным  подканалам,  пpи
этом в IOBYTE (ячейка памяти 3) заносится соответствующий код.
    Назначение   физических   устpойств   подканалам  выполняется
пpогpаммой обслуживания INSTSCP.

    Пpимеp:

    STAT CON:=CRT:,RDR:=UR1,PUN=UP1,LPT:=TTY:

    Пpи обнаpужении ошибок  во  введенной  команде  и  паpаметpах
выдается  инфоpмация  об  ошибке  на  экpан и выполняется возвpат
опеpационной  системы  в  исходное  состояние.  Следует  повтоpно
ввести команду и соответствующие паpаметpы.
    FILE NOT FOUND непpавильное или неполное указание файла, файл
                            отсутствует.   Непpавильное  указание
                            паpаметpов  (напpимеp,   DSK   вместо
                            DSK:)
    INVALID   FILE  INDICATOR  непpавильное  указание  паpаметpа,
                            напpимеp, пpобел между $ R/O
    INVALID    DISK    ASSIGMENT    непpавильное     пpисваивание
                            хаpактеpистики   дискете   (напpимеp,
                            STAT A:=SYS не допускается)
    BAD DELIMITER           непpавильный pазделитель
    INVALID ASSIGNMENT непpавильное назначение канала  (напpимеp,
                            STAT RDR:=LPT:)

    1.6.2. Команда FORMAT
                          
    Транзитная  команда  FORMAT  предназначена для форматирования
дискеты под управлением ОС  CP/M  согласно  стандартам  дискет  с
программным делением на сектора.
    Форматы команды:
     FORMAT  -  Выводит  на  экран дисплея инструкцию с форматами

                               - 19 -
                      дискет.
     FORMAT [D:]40 - Форматирование  дискет  на  сорокадорожечных
                     дисководах  в дисководе D:. D - означает имя
                     дисковода (A ... D).
     FORMAT [D:]80   - То же для восьмидорожечных дисководов.
    После  форматирования  дискета   может   использоваться   как
несистемная.
            
    1.6.3. Команда SYSGEN
    
    Транзитная команда SYSGEN предназначена для копирования ОС  с
одной дискеты на другие. По команде SYSGEN происходит чтение ОС с
системной дискеты, располагающейся на ее первых двух цилиндрах  и
запись ОС на предварительно сформатированную дискету. После этого
дискета  становится  системной. Запись ОС возможна и на системную
дискету с целью либо записи новой  версии  ОС,  либо  исправления
испорченной записи ОС.
    Формат команды:
    SYSGEN
    Вначале   программа  запрашивает  на  каком  дисководе  будет
производится  копирование.  Затем  программа  просит   установить
дискету  с  ОС, читает ее и предлагает установить форматированную
дискету в тот же дисковод. После этого ОС записывается  на  новую
дискету. При необходимости запись может быть повторена  на  любом
количестве дискет по дополнительному запросу.

    1.6.4. Команда DIP
    
    Универсальная  команда  DIP  обеспечивает обмен данными между
периферийными устройствами персональной вычислительной машины.
    Основной задачей программы  является  копирование  файлов  на
гибких дисках.
    Команда DIP имеет следующий формат:
    
    (1) DIP "командная строка"
    (2) DIP
    
    В случае (1) команда загружается и после обработки "командной
строки" завершается.
    В  случае  (2)  команда  только загружается. Затем она выдает
символ готовности ("*"),  которым  указывает  свою  готовность  к
работе  и  ожидает  ввода  командной  строки.  В  это время можно
заменить системную дискету на другую  дискету.  Вследствие  этого
данная  дискета  устанавливается  в  состояние  R/O (READ ONLY) и
может быть  использована  только  в  качестве  выходной  дискеты.
Программа  завершает  выполнение  при  вводе ^C. Командная строка
имеет следующий формат:
    
    D:<выход>=D:<вход 1>,...,D:<вход N>[P]
    
    где: D означает имя дисковода (A...D);
    <выход> и <вход 1> по <вход N> - название файлов в формате

                               - 20 -
<имя файла>.<тип файла>;
    P указывает допустимые параметры.
    В каждой  команде  может  быть  указано  один  или  несколько
параметров, заключаемых в прямоугольные скобки:
    Q - запрос перед копированием каждого файла;
    P  -  подсказка  для смены дисков в дисководе (необходимо при
копировании файлов в одном дисководе);
    V - контроль записи после копирования.
    Для копирования файлов в  одном  дисководе  командная  строка
имеет следующий формат:
    
    A:=<имя файла>[PQV]
    
    После  этого  система запрашивает вначале дискету с исходными
файлами, затем дискету  для  записи  файлов,  а  после  окончания
копирования - системную дискету.
    Примеры:
    
    A:=*.*[PQV]
    Копирование  всех  фалов  с  дискеты при использовании одного
дисковода.
    B:=A:TEST.*
    Копирование с дисковода A на дисковод B всех файлов с  именем
TEST и с любым расширением.
    

    1.6.5. Команда SUBM

    Если      тpебуется     выполнить     часто     повтоpяющуюся
последовательность команд, то эту  последовательность  с  помощью
pедактоpа  текстов можно поместить в специальный файл "имя.SUB" и
автоматически выполнить по команде SUBM.
    Этот файл должен находиться на дисководе А.  Обpаботка  файла
запускается по команде SUBM. Команда имеет следующий фоpмат:

    SUBM <имя файла> <список паpаметpов>

                      Командный файл для SUBM

    Файл  "имя.SUB"  создается в фоpме текстового файла с помощью
pедактоpа текстов.
    Этот файл состоит из пpедназначенных  для  обpаботки  команд,
напpимеp,  DIP,  TYPE, PIP, котоpые pасположены в нем постpочно в
поpядке  их  выполнения.  С  помощью  SUBM  можно   автоматически
выполнять  все  команды,  котоpые запускаются пpи вводе командной
стpоки.
    Для констpуиpования командного файла общего вида  допускается
замена  паpаметpов  команд  (или их частей), таких как имя файла,
тип файла или дисковод на пеpеменные, состоящие из знака денежной
единицы и целого числа. Эти  числа  должны  нумеpоваться  подpяд,
начиная с 1. Допускается использование до 9 пеpеменных.


                               - 21 -
    $1 $2 $3 ...     $9

    Вместо  этих общих пеpеменных впоследствии пpи подаче команды
SUBM подставляются фактические значения, котоpые должны вводиться
в поpядке, соответствующем номеpам пеpеменных.
    Пpобелы в этом файле не допускаются.
    Если тpебуется  поместить  в  командный  файл  знак  денежной
единицы,   следует  указать  "$$".  Два  знака  денежной  единицы
интеpпpетиpуются как знак денежной единицы, а один знак  денежной
единицы с целым числом интеpпpетиpуется как пеpеменная.
    В  командный файл может быть включена и сама команда SUBM как
команда для обpаботки сложных последовательностей команд, в  этом
случае она должна быть последней.
    Указание  названия  дисковода  пеpед именами файлов позволяет
выполнять команды для любых дисководов.
    Запуск SUBM для файла  с  паpаметpами  осуществляется  вводом
командной стpоки:

    SUBM <имя файла>P1 P2 P3 ... P9

    <имя файла>: имя командного файла без указания типа.
    P1...P9:-   паpаметpы,   котоpые   замещают   использованнные
пеpеменные.
    Максимальная длина  стpоки  126  символов.  Паpаметpы  должны
отделяться дpуг от дpуга по кpайней меpе одним пpобелом.
    После  нажатия  клавиши  ET  из  файла  "имя.SUB" и введенных
паpаметpов на дисководе А генеpиpуется вpеменный файл
    "$$$.SUB"
в котоpом содеpжатся полностью сфоpмиованные командные стpоки.  С
помощью  этого файла выполняются все пpогpаммы после выполняемого
пpи необходимости автоматического теплого  стаpта.  В  заключение
опеpационная  система снова находится в исходном состоянии. После
выполнения  функции  SUBM,  а  также   пpи   ее   пpеждевpеменном
пpекpащении файл "$$$.SUB" снова уничтожается.
    Если  по  какой-либо  пpичине  файл  "$$$.SUB" сохpаняется на
дискете, опеpационная система пpи теплом стаpте сpазу же начинает
выполнение команд этого файла. Следует пpеpвать эту  обpаботку  с
помощью клавиши ET, и файл будет уничтожен.
    Обpаботка  команд  пpекpащается,  если  в  какой-либо команде
будет обнаpужена ошибка.
    Преждевременно прекратить выполнение  обрабатываемой  команды
можно с помощью клавиши ET или клавиши какого-либо символа. После
этого  обрабатывается  следующая команда. Кратковременный останов
выполнения  текущей  команды  можно  произвести  с  помощью   ^S;
продолжение  выполнения  -  клавишей  ET или клавишей какого-либо
символа.

    Пример:

    С помощью программы "WM42" был создан следующий файл с именем
SAMPLE.SUB:
    

                               - 22 -
    ERA *.$1          стирание всех файлов указанного типа
    DIR *.$2          отображение файлов указанного типа
    DIP $3:=$4;*.$5   копирование файлов
    DIR $3:=*.$5      отображение копированных файлов
    Команда SUBM выглядит следующим образом:
    SUBM SAMPLE BAK * B A COM
    Команда   считывает   файл   "SAMPLE.SUB",  задает  следующие
параметры:
    "BAK" для $1
    "*"   для $2
    "A"   для $3
    "B"   для $4
    "COM" для $5
и создает файл "$$$.SUB".
    После этого обрабатываются следующие команды:
    ERA *.BAK           стирание всех файлов BAK
    DIR *.*             отображение каталога дисковода А
    DIP B:=A:*.COM     копирование всех файлов типа COM с A на B
    DIR  B:*.COM   отображение перечня скопированных на B файлов
                        типа COM
    A>                  исходное состояние операционной системы

    При обнаружении ошибок выполнение команды SUBM прекращается и
операционная система переводится в исходное состояние.  На  экран
выдается  информация  "ERROR  ON  LINE  X"  и  одно  из следующих
сообщений об ошибке:
    - NO 'SUB' FILE PRESENT  файл "имя.SUB" не существует
    - PARAMETER ERROR        ошибка в параметре команды в файле
                             "имя.SUB"
    -   COMMAND   TOO  LONE  превышена  длина  командной  строки
                             (максимальная  длина   строки   126
                             символов)
    - COMMAND BUFFER превышен  допустимый  размер  нового  файла
                             "$$$.SUB"  (максимальная длина 1023
                             символа)
    - DIRECTORY FULL нет свободной области в каталоге для  файла
                             "$$$.SUB"
    -  CANNOT  CLOSE,  невозможно  закрыть  файл  "$$$.SUB",  не
                             READ/ONLY?   разрешено   чтение   с
                             дискеты
    - DISK WRITE ERROR?      аппаратурная ошибка дисковода
    -  INVALID  CONTROL  недопустимый управляющий символ в файле
                             CHARACTER "имя.SUB"

    1.6.6. Команда XSUB

    Команда  XSUB  расширяет  функции  команды   SUBM,   позволяя
записывать  в  командном  файле данные для программ, вызываемых в
этом файле.
    Команда  XSUB  позволяет   создавать   командные   файлы   со
специальными   командными   строками,   передаваемыми  некоторыми
командами и программами OC CP/M. Командные  файлы,  созданные  по

                               - 23 -
команде  XSUB, кроме того, содержат текстовую информацию, которая
обычно вводится с консоли в ответ на промпты  программы.  Команду
XSUB  можно  использовать совместно с командой SUBMIT в различных
случаях, например,  при  модификации  существующей  программы  на
языке  Бэйсик, запуске ее, автоматическом вводе данных в процессе
выполнения, повторной, отличной от первой, модификации  программы
с целью последующего исполнения и т.д.
    Команда XSUB запускается командой SUBM (см. описание  команды
"SUBM").
    XSUB  должна быть первой командной строкой в файле "имя.SUB".
Затем следуют команды и входные данные, которые также считываются
построчно.
    При первом вызове XSUB загружается сразу же после области ССР
и сохраняте управление до следующего холодного старта или до  тех
пор,  пока  не  будет  загружена  команда,  перекрывающая  XSUB в
памяти. После обработки командного файла XSUB остается  активной,
после каждого теплого старта выдается сообщение

    (XSUB ACTIVE)

    В  состоянии  "XSUB ACTIVE" возможна обработка других команд,
исключая XSUB.
    Если выполняется запуск XSUB в то время,  когда  эта  команда
активна, выдается сообщение:

    XSUB ALREADY PRESENT

    Выполнение XSUB можно прекратить вводом ^C.
    При  использовании  команды  XSUB  можно  передавать  входные
данные программам из командного  файла  только,  если  существует
стандартный  способ  завершения  этих  программ.  Иными  словами,
программы (например,  DIP),  для  завершения  которых  необходимо
нажать  клавишу  ENTER  или  ввести  команду  ^C (реинициализация
системы),  нельзя  использовать  совместно   с   командой   XSUB,
обладающей особыми свойствами. Это объясняется тем, что программа
"SUBMIT"  не  опознает  пустые  строки (т.е. те, которые содержат
только символы возврата каретки и перевода  строки)  в  командном
файле.  Эти  строки  будут рассматриваться как ошибочные. Строки,
содержащие символ ^C будут также рассматриваться как ошибочные.

    Пример:

    Для  демонстрации  принципа  работы XSUB рассмотрим следующий
пример: требуется переслать все программы с типом файла ".DOC"  с
одной  дискеты  на другую. Командный файл с именем DEMO.SUB имеет
следующее содержимое:
    
    
    
    
    
    

                               - 24 -
    XSUB
    ;*******************************************
    ;*                                         *
    ;*     пересылка файлов DOC                *
    ;*                                         *
    ;*******************************************
    DIR=$1:
    DIR=$2:
    DIP
    $1:=$2:*.DOC

    Последняя строка командного файла - данные для программы DIP.
В обычном командном файле (без XSUB) данные находиться не могут.
    
    1.7. Сообщения операционной системы
    
    Наряду  с  ошибками,  характерными для отдельных команд, CP/M
выдает на экран следующие четыре сообщения об ошибках:
    BDOS ERR ON D: BAD SECTOR
    BDOS ERR ON D: SELECT
    BDOS ERR ON D: R/O
    BDOS ERR ON D: FILE R/O
    Здесь D означает логический дисковод A...D.
    Также могут быть получены сообщения  об  ошибках  печатающего
устройства.
    
    
    Ошибка: BAD SEKTOR
    
    Это   сообщение  об  ошибке  может  быть  вызвано  следующими
причинами:
    - обнаружена ошибка при чтении или записи сектора на дискете;
    - формат дискеты отличается от запрошенного формата;
    - обработка дискеты  выполнена  не  надлежащим  образом,  что
привело к потере данных;
    - обнаружена несовместимость физического дисковода, на котром
установлена дискета и текущего физического дисковода.
    Это  сообщение  выдается  также  в  случае,  если  дискета, с
которой требуется выполнить считывание, не установлена в дисковод
или если дисковод неправильно закрыт.
    Получение сообщения об ошибке можно  подтвердить  вводом  ^C.
выполнение    текущей   программы   или   команды   прекращается,
выполняется теплый старт. Однако имеется возможность игнорировать
ошибку, нажав на любую клавишу, и продолжить выполнение программы
или  команды.  При  выполнении  записи  на  дискету  это  вызовет
продолжение разрушения данных на дискете.
    
    Ошибка: SELECT
    
    Эта ошибка выдается при запросе несуществующего дисковода.
    CP/M  может  обращатся  не  более чем с четырьмя дисководами,
поэтому  такая  ошибка  выдается,  например,  при   обращении   к

                               - 25 -
логическим дисководам F, G, H...
    Нажатие  любой  клавиши  вызывает  теплый старт, операционная
система переходит в исходное состояние.
    
    Ошибка: R/O (READ ONLY)
    
    Это сообщение об ошибке выдается на экран при попытке  записи
на  дискету,  которой  программно  (например, транзитной командой
STAT) присвоена характеристика READ ONLY. Это сообщение  выдается
также,  если  после  замены дискеты требуется выполнить запись на
вновь установленную дискету без предыдущего  теплого  старта  или
установки  системы  в  исходное состояние с помощью функции BDOS.
Получение этого сообщения подтверждается нажатием любой  клавиши,
при  этом  выполняется теплый старт, при котором наряду с другими
действиями  дискете  присваивается   характеристика   READ/WRITE.
Выполнение начатой команды или программы прекращается.
    
    Ошибка: FILE R/O
    
    Это  сообщение  выдается,  если  делается попытка стереть или
изменить файл  с  характеристикой  R/O.  Подтверждение  получения
этого   сообщения  об  ошибке  нажатием  любой  клавиши  вызывает
выполнение теплого старта и  приводит  к  прекращению  выполнения
команды или программы.
    
    Ошибка печатающего устройства
    
    Ошибка печатающего устройства вызывает остановку программы. С
помощью  ^C  выполнение  команды  или  программы  прекращается  и
инициализируется теплый старт. При нажатии любой  другой  клавиши
ошибка   игнорируется   и   выполнение   команды   или  программы
продолжается   (например,    после    устранения    неисправности
печатающего устройства.
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    

                               - 26 -
       2. КРАТКИЕ ОПИСАНИЯ ДОПОЛНИТЕЛЬНЫХ ТРАНЗИТНЫХ КОМАНД
    
    2.1. Экранный редактор WM42
    
    Редактор  текстов  WM42.COM  предназначен  для  подготовки  и
редактирования  различных   текстовых   документов.   С   помощью
редактора  WM42  вы  также  можете формировать тексты программ на
различных языках программирования.0
    Формат вызова редактора:
    
    WM42 <имя файла>
    
    Если  файл с указанным именем существует на дискете, то текст
из этого файла появляется на  экране  после  загрузки  редактора.
Если  указано имя несуществующего файла, то редактор запустится с
пустым экраном.
    Редактор  позволяет  подготавливать  тексты  на   русском   и
английском языках с применением прописных и строчных букв.
    Длина  строки текста редактируемого файла  может  значительно
превышать 42 символа, помещающихся  в  строке  дисплея.  Редактор
позволяет   обрабатывать   такие  текстовые  файлы.  Символы,  не
помещающиеся в строку дисплея переносятся в следующую  строку,  а
начало этой строки помечается символом:
    >>
    Управление  работой редактора производится в экранном режиме,
а также в режиме команд.
    Команды экранного режима:
    ^Z  вставка вкл/выкл               ^_  удалить знак слева
    ^Y  курсор влево на знак           ^T  удалить знак справа
    ^W  курсор вправо на знак          ^X  удалить слово слева
    ^F  курсор влево на на слово       ^B  удалить слово справа
    ^A  курсор вправо на слово         ^L  стереть строку слева
    ^J  курсор вправо на ГТ            ^D  стереть строку справа
    ^U  курсор вверх на строку         ^G  удалить всю строку
    ^^  курсор вниз на строку          ^I  вставить ГТ в файл
    ^E  курсор в нач/конец экрана      ^R  вставить ВК и ПС в файл
    ^P  курсор в нач/конец строки      ^@  исполнить след. 4 раза
    ^C  файл вниз на 1 строку          ^]  вставить след. в файл
    ^Q  файл вверх на 1 строку         ^\  вывод подсказки
    ^K  файл вниз на экран             ESC выход в режим команд
    ^S  файл вверх на экран
    Управление курсором  дополнительно  осуществляется  клавишами
управления курсором, нажимаемыми совместно с клавишей CTRL.
    После  перехода  в  командный  режим  в  левой позиции нижней
строки   экрана   появляется   символ   "*".   Команды   скрытого
редактирования  набираются  в  этой строке и завершаются клавишей
ENTER.
    Команды скрытого редактирования:
    +-  Означ. направл. сдвига (- к началу, {+}к концу текста)
    @   Означ. необходимость ввода ENTER
    $   Означ. необходимость ввода ESC, ^Z или ENTER
    n   Означ. число, по умолчанию 1, # = 65535

                               - 27 -
    
    +-nC  сдвиг на n символов          +-nD  удаление n символов
    +-nL  сдвиг на n строк             +-nK  удаление n строк
    +-nT  вывод n строк                  nZ  пауза n секунд
    +-nP  выво n страниц               +-n@  вывод n-й строки
    
    nItext$         Вставка text n раз
    I@              Вкл. режима вставки (окончание ESC или ^Z)
    A@, nAtext$     Добавление: после сдвига на 1L то же, что I@
    n<....>         Цикл: повторить ... n раз (нач. знач.=65535)
    +-nFkey$        "Короткий" поиск key n раз (в памяти)
    +-nNkey$        "Длинный" поиск key n раз (во всем файле)
    +-nSkey$text$   Замена key на text после короткого поиска
    +-nRkey$text$   Замена key на text после длинного поиска
    /F,/N,/S,/R     То же, с выходом из<..> или QX, если текст
                    не найден
    Y[d:]name.typ$  Вставить файл по месту курсора
    nW[d:]name.typ$ Сформировать файл из n следующих строк
    
    ^L   Вставить CRLF                 ^Y   Вставить ESC
    ^A   Совп. с любым символом        ^A   Совп. с любым раздел.
    ^?X  Совпадает с не X в text или key
    
    nQP        Поместить n строк из файла в дополнит. буфер
    n/QP       Добавить n строк из файла в дополнит. буфер
               (строки из файла удаляются)
    nQG        Вставить содержимое доп. буфера в файл n раз
    QT         Вывести на экран дополнительный буфер
    QK         Очистить дополнительный буфер
    QX         Выполнить команды из дополнительного буфера
    QLtext$    Поместиь text в дополнительный буфер
    n/QLtext$  Добавить text в доп. буфер n раз
    
    V   Экранное редактирование        N!  Поместить в файл код N
    ;   Отделение комментария          E   Окончание работы
    H   Кончить и начать снова         Q   Отмена работы
    O   Возврат к исходному файлу     ^Q   Вывод подсказки
    
    2.2.  GAMMA
    
    2.3. Программа POWER
    
    Программа  POWER  предназначена   для   управления   сложными
функциями  памяти/дисков  независимо  от степени подготовленности
пользователя. Всего в POWER предусмотрено  свыше  55  команд,  но
программа  занимает  только  16  Кбайт.  Одним  из  свойств POWER
является цифровое меню, благодаря которому можно делать быструю и
легкую  селекцию,  начиная  с  одного  файла  и   кончая   полным
содержанием  диска.  При  этом также исключается тяжелая работа с
последовательной обработкой файлов. При  наличии  цифрового  меню
POWER  все, что требуется от пользователя, это - выбрать файлы, с
которыми необходимо работать, ввести  номер  файла  один  раз,  а

                               - 28 -
POWER  сделает  все  сам.  Пока  идет  операция  обработки, POWER
позволяет видеть, какие именно файлы и какая операция  выбраны  и
что именно происходит в каждый конкретный момент времени.
    Другим замечательным свойством программы является  устранение
неприятных   и   потенциально   катастрофических  ситуаций  из-за
неосторожно нажатых клавиш,  в  результате  чего  будет  потеряна
работа  за  полдня. Если, например, попытаться зарегистрироваться
на устройство, в котором нет диска,  то  POWER  просто  отвечает:
"CANT  NOT LOG ON A:" (не можете зарегистрироваться на устройство
A:). Аварийная ситуация отсутствует. POWER автоматически вернется
к  подсказке  A0=  и далее можно вставить дискету в устройство A:
или инициировать другую операцию.
    Формат вызова:
    
    PW [2]
    
    В ответ POWER выводит свою  подсказку,  состоящую  из  буквы,
числа  и  знака  "=".  Буква означает имя текущего диска, число -
область пользователя.
    Список команд программы POWER:
    CHECK          подсчет контрольных сумм указанных файлов
    CM             сравнение двух областей памяти
    COPY           копирование файлов
    DIR            оглавление диска
    DISK           информация об организации диска
    DS             просмотр и модификация памяти
    DUMP           вывод области памяти
    ERA            стирание файлов
    EXIT           выход в операционную систему
    FILL           заполнение памяти константой
    GO             запуск программы
    GROUP          список блоков указанного файла
    JP (EX)        передача управления по адресу
    LOAD (SAVE)    загрузка (выгрузка) файла
    LOG            информация о состоянии POWER
    MOVE           перемещение области памяти
    READ (WRITE)   прямой доступ к диску при чтении (записи)
    READGR (WRITEGR)  обмен с диском
    RECLAIM        восстановление стертых файлов
    REN            переименование
    RESET          сброс диска
    RUN            загрузка и передача управления другой программе
    SEARCH         поиск символа, байта, текста в памяти
    SET            установка старшего бита в коде символа имени
                   или типа файла
    SETDIR (SETSYS, SETRO, SETWR)  установка атрибутов файла
    SIZE           определение размеров файлов
    SORT           сортировка каталога
    SPEED          установка скорости вывода на дисплей
    STAT           информация о заполнении диска
    TEST           тестирование диска
    TYPE (TYPEX, TYPEH, TYPEA)  вывод текстового файла на дисплей

                               - 29 -
    USER (XUSER)   использование областей пользователя
    ?              вывод списка команд POWER на дисплей
    Синтаксис командной строки:
    
    <новый текущий диск>:<пробел><имя команды><пробел><имя диска>:
    <пробел><имя программы><пробел><имя файла><пробел><параметры>
    <пробел><ключи в квадратных скобках>
    
    В  зависимости  от  конкретной   ситуации   часть   элементов
командной строки опускается.
    В  случае,  если  в  команде  не  указано  явное  имя  файла,
осуществляется вывод цифрового меню,  в  котором  перечислены  те
файлы,    имена   которых   удовлетворяют   неявному   имени   (с
использованием * и ?), или все файлы на диске, к которым  команда
может быть применена, если неявного имени нет.
    В  ответ  на  цифровое  меню  можно ввести один или несколько
номеров из предложенного меню, разделенных пробелами. Допускается
через тире указывать пару  чисел,  означающую  диапазон  номеров.
Если   опущено   второе  число  из  пары,  подразумевается  номер
последнего файла в меню. Например:
    
    SELECT? 1-5 8 11 23-
    
    Означает выбор номеров с 1 по 5, 8, 11 и все файлы с 23-го до
конца меню.
    Введенная команда применяется ко всем файлам, номера  которых
указаны.   При   этом  перед  каждым  выполнением  выводится  имя
очередного файла.
    При работе POWER можно менять  дискеты  произвольно  во  всех
дисководах.  Для  того,  чтобы  на  новый диск можно было писать,
следует ввести ^C.
    Для прерывания выполнения команд POWER предназначены  клавиши
ESC  или ^C. Второй вариант еще и считывает оглавление с текущего
диска.
    
    2.4. Драйвер виртуального экрана VS80
        
    Драйвер     VS80.COM,     предназначен     для    обеспечения
работоспобности программ, требующих 80 символьного экрана,  в  ОС
CP/M на персональном компьютере "Кворум".
    Драйвер  включается  в  состав CP/M на время работы программы
пользователя и автоматически удаляется по ее завершении.
    Формат вызова:
    
    VS80 <имя программы>
    
    Для  включения  драйвера  необходимо  указать  имя  программы
пользователя в  качестве  параметра  при  его  вызове.
    Например:
    
    A>VS80 SC2
    

                               - 30 -
    Пользовательская программа должна быть  исполняемой  и  иметь
расширение COM. Для работы с драйвером необходим манипулятор типа
джойстик. Его подключают в гнездо МП1.
    После  загрузки  драйвера  появляется   приглашение   выбрать
кодировку  символов,  которая  будет  использовоться  при  работе
программы пользователя. Если необходимости в выборе нет,  нажмите
любую   клавишу,   после   этого   программа  будет  запущена  на
исполнение.
    При работе с драйвером экран монитора  является  окном  42*24
символа,  который  можно  перемещать  по  80  символьному  экрану
формируемому программой пользователя. Перемещение  осуществляется
рычагом джойстика. Если в процессе работы возникнет необходимость
оперативно   сменить  используемую  кодировку  символов,  нажатие
кнопки  FIRE  джойстика,  позволяет  последовательно  переключать
КОИ-8; КОИ-7 лат.; КОИ-7 рус./лат.; КОИ-7 рус.
    Драйвер    VS80.COM    можно   использовать   с   программами
использующими размер строки экрана меньше чем 80 символов, однако
следует отметить, что VS80.COM уменьшает объем оперативной памяти
предоставляемой  пользователю  на  3  Кбайт  и  несколько снижает
производительность компьютера при работе с экраном.
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    

                               - 31 -
                      ПРИЛОЖЕНИЕ 1. Клавиатура
                      
    В ПЭВМ "Кворум БК-04" используется клавиатура с надписями  на
клавишах,  соответствующих  компьютерам класса "ZX-spectrum". Это
делает необходимым использование некоторых клавиш в среде ОС CP/M
не в соответствии с надписями на них.
    
    Перечень клавиш с измененными функциями:
    
  ┌───────────────────────┬────────────────────────────────────┐
  │  НАДПИСЬ НА КЛАВИШЕ   │        ВЫПОЛНЯЕМАЯ ФУНКЦИЯ         │
  ├───────────────────────┼────────────────────────────────────┤
  │  ┌───┐                │                                    │
  │  │ Е │                │    ESC                             │
  │  └───┘                │                                    │
  │  ┌───┐                │                                    │
  │  │ G │                │    TAB (табуляция)                 │
  │  └───┘                │                                    │
  │  EDIT                 │    CAPS LOCK (фиксация регистра)   │
  │                       │                                    │
  │  CAPS SHIFT           │    CTRL (обозначается как ^)       │
  │                       │                                    │
  │  SYMBOL SHIFT         │    SHIFT (верхний регистр)         │
  │                       │                                    │
  │  Седьмая клавиша      │    NMI (немаскируемое прерывание)  │
  │  в верхнем ряду       │                                    │
  └───────────────────────┴────────────────────────────────────┘
    
               ПРИЛОЖЕНИЕ 2. Перечень пакетов программ
                для использования с OC CP/M "КВОРУМ"
    
    П2.1. Язык программирования бейсик - BASI
    
    Интерпретатор  языка Бейсик применяется совместно с OC CP/M и
является языком программирования высокого уровня. Бейсик создан в
начале 60-х годов как язык  обучения  программированию.  Легкость
понимания   этого  языка  достигается  благодаря  весьма  простым
правилам его построения и организации диалога между пользователем
и компьютером в процессе создания программы.
    Практическое  руководство,  имеющееся  на  дискете,  содержит
подробное  описание  языка  программирования  Бейсик с примерами.
Руководство может быть распечатано на принтере.
    
    
    П2.2. Электронные таблицы - SC2
    
    В процессе производственной деятельности  любого  специалиста
часто  требуется представить результаты работы в виде таблиц, где
одна часть граф занята исходными данными, а другая - результатами
вычисления и анализа.
    Используют  таблицы  особенно  широко   в   административной,
экономической,  хозяйственной сферах. Расчеты, результаты которых

                               - 32 -
вносят в таблицы, как правило, очень просты и для  их  проведения
не   требуется   специальной   математической  подготовки.  Часто
возникает необходимость в многократных просчетах, в ходе  которых
умышленно  вносят  некоторые  изменения  в  исходные данные, т.е.
нужно провести численное моделирование той или иной ситуации.
    Программа  имеет  встроенную  систему   оперативной   помощи,
которая  выдает  подсказки  по  запросу оператора в любое время в
процессе работы с электронной таблицей.
    На  дискете  с  программным  обеспечением  находится  файл  с
текстом  руководства  пользователя по работе с пакетом прикладных
программ SUPERCALC, который можно распечатать на принтере.
    
    
    П2.3. Система управления реляционными базами данных - REBUS
    
    REBUS - это русифицированная  версия  языка  программирования
dBASE   II.   База   данных   представляет   собой   совокупность
взаимосвязанных массивов данных, хранящихся в памяти  компьютера.
Например, база данных, в которой хранится информация о какой-либо
организации,  может  содержать перечень ее подразделений, штатное
расписание, список сотрудников, данные о  работах,  проводимых  в
организации,  и  т.д. Вся эта разнообразная информация составляет
единую базу данных.
    Файл  помощи,  входящий  в  состав  REBUS  оперативно  окажет
необходимую помощь в процессе создания и работы с базами данных.
    Дискета   с   программным   обеспечением  содержит  подробное
описание языка программирования REBUS.
    
    
    П2.4. Макроассемблер - M80
    
    Макроассемблер   -   это    компилятор    с    символического
машинноориентированного  языка (языка ассемблера). Он преобразует
исходную   программу,   написанную   на   языке   ассемблера,   в
перемещаемый модуль. В дальнейшем модуль может быть скомпонован в
программу, готовую к выполнению.
    Макроассемблер работает с системой  команд  процессоров  К580
или  Z80.  Для  работы  с макроассемблером М80 необходимо изучить
архитектуру и систему команд микропроцессора, для которого  будет
разрабатываться программное обеспечение.
    Программы на языке ассемблера могут быть очень  эффективными.
В  случае  работы  программистов одинаковой квалификации и равной
одаренности, программа, составленная на языке  ассемблера,  будет
короче  и более бысто выполнимой, чем точно такая же программа на
языке высокого уровня.
    Дискета с  макроассемблером  содержит  описание  программного
обеспечения, которое можно распечатать при наличии принтера.
    
    
    
    
    

                               - 33 -
    П2.5. Символьный отладчик - ZSID
    
    Символьный отладчик ZSID (другое название  -  DDT)  позволяет
пользователю   загружать  в  оперативную  память,  просматривать,
тестировать и изменять и  отлаживать  любую  программу  на  языке
ассемблера,  представленную  в  машинном   коде.   Помимо   этого
программа  ZSID  допускает  просмотр содержимого текстовых файлов
любого типа. Программа ZSID работает в динамическом  режиме,  что
позволяет    пользователю    запускать   находящуюся   в   памяти
отлаживаемую программу и отслеживать каждый шаг ее выполнения.  С
ее помощью можно также вносить небольшие изменения в существующие
программы  или  реассемблировать  их с тем, чтобы понять, как они
работают.
    Программа ZSID представляет собой важнейшее  инструментальное
средство   для   программистов,   использующих  язык  ассемблера.
Программа ZSID содержит также встроенный мини-ассемблер.
    
    
    П2.6. Редактор текстов - ТТ
    
    Редактор текстов ТТ - это русифицированная  версия  программы
WordStar.  В  некоторых  источниках этот редактор описывается под
именем РЕФОР.
    Редактор текстов ТТ  является  пакетом  прикладных  программ,
основное  назначение  которого состоит в подготовке разнообразных
текстовых материалов  и  документов  в  экономической,  торговой,
административно-хозяйственной,  редакционно-издательской и других
подобных видах человеческой  деятельности.  С  помощью  редактора
текстов  можно  формировать  тексты  программ  на алгоритмических
языках, например Бейсике.
    Редактор текстов ТТ  имеет  развитую  систему  меню,  которые
всегда  находятся  на  экране  дисплея  и  позволяют  работать  с
программой не обращаясь к дополнительному описанию.
