 ══════════════════════════════════════════════════════════════

 ▓▓▓▓▓▓ ▓▓▓▓▓▓ ▓ ▓▓▓▓   ▓▓▓▓▓  ▓▓▓▓▓▓    ▓▓▓▓▓▓   ▓▓▓▓▓▓  ▓▓▓▓▓
 ▓    ▓ ▓    ▓ ▓ ▓   ▓  ▓    ▓ ▓    ▓    ▓    ▓   ▓    ▓ ▓   ▓▓
 ▓      ▓      ▓ ▓    ▓ ▓    ▓ ▓              ▓        ▓ ▓  ▓ ▓
 ▓       ▓▓▓▓  ▓ ▓    ▓ ▓    ▓  ▓▓▓▓  ▓▓    ▓▓        ▓▓ ▓ ▓▓ ▓
 ▓           ▓ ▓ ▓    ▓ ▓    ▓      ▓         ▓     ▓▓   ▓ ▓  ▓
 ▓    ▓ ▓    ▓ ▓ ▓    ▓ ▓    ▓ ▓    ▓    ▓    ▓   ▓▓     ▓▓   ▓
  ▓▓▓▓▓ ▓▓▓▓▓▓ ▓ ▓▓▓▓▓   ▓▓▓▓▓ ▓▓▓▓▓▓    ▓▓▓▓▓▓ ▓ ▓▓▓▓▓▓ ▓▓▓▓▓

 ══════════════════════════════════════════════════════════════

                    Tехническая документация.

               Операционная система для БК0011М.

 ══════════════════════════════════════════════════════════════
 Компоновка, добавления и редактирование : DieMon Software Inc.
 ══════════════════════════════════════════════════════════════

 ─────────────────── Расположение на диске ────────────────────

                 0 блок  - загрузчик системы
              2-11 блоки - каталог устройства
             12-.. блоки - блоки,отведенные под файлы

 ─────────────── Расположение записей о файлах ────────────────

первый блок в каталоге:
     W0............физический номер блока
     W2............общее число блоков на диске
     W4,W6.........123123 для CSIDOS-3
     W10(123123)...принадлежность диска системе CSIDOS
     W12...........не используется (=0)
     B14-B777......записи о файлах
остальные блоки каталога:
     W0............физический номер блока
     W2-W12........не используется (=0)
     B14-B777......записи о файлах

 ────────────────── Элемент записи о файле: ───────────────────

 Элемент каталога содержит всю информацию о файле (директории),
размер элемента каталога 24 байта:

     B0...........=1-310.номер директории
                  =311...плохое место (ну очень плохое)
                  =312...удаленная директория либо запись, не
                         содержащая информацию:
                         (удаляется после сквизирования)
                  =376...дырка (от бублика)
                  =377...удаленный файл, который можно восста-
                         новить
                  =0.....конец каталога
     B1<0 .........защита от удаления
     B2-B14........имя файла с расширением (без точки)
     B15...........статус файла:
                   7 бит- признак длины в блоках
                   3 бит- признак файла для БК0010
                   =1 - БК0011М; =0 - БК0010
                   остальные биты- копия регистра 177717
                   (страницы если кто-то забыл)
     W16...........начальный блок файла
     W20...........адрес загрузки
     W22...........длина файла

 ══════════════════════════════════════════════════════════════
  Распредeление адресного пространства в системе "CSIDOS-3.20"
 ══════════════════════════════════════════════════════════════

Страницы 0,1,2,3,4 использюутся в различных программах по сво-
ему усмотрению.
Страница 5 является экраном.
Страница 7 :

 Полностью вся система расположена в системной странице с номе-
ром 7. Собственно CSIDOS расположена с 45000 до 50000, т.е. за-
нимает 3000 байтов. С 54300 до 63000 расположена программа  об-
служивания  оконного интерфейса и с адреса 63000 находится опе-
рационная оболочка CC-SHELL.

      40000-44777...системная область монитора БК0011М и
                    "CSIDOS-3.20".Сюда лазить не рекомендуется.
      45000-47777...ядро системы.Сюда лазить нельзя.
      50000-54277...знакогенератор. Сюда вообще-то тоже нельзя.
      54300-62777...TURBO VISION. И здесь копаться нельзя
      63000-63777...главный блок оболочки "Х-SHELL".
                    если его испортить, в оболочку больше не
                    попадешь.
      64000-77777...оболочка.  Если испортить ее,  то прекраща-
                    ется  выполнение  командного файла, дочиты-
                    вается  кусок  оболочки с системного диска,
                    и запускается со старыми данными оболочка.
страница 6 :
    100000-111777...оболочка.Те же положения, что и для
                    64000-77777 в 7-й странице.
    120000-127777...каталог левой панели
    130000-137777...каталог правой панели

Если сказать обобщенно,то:

  -если вы хотите быстро вернуться в оболочку, то можно исполь-
   зовать адреса 112000-137777 в 7-й странице
  -если вы используете адреса 64000-137777, то тоже можете вер-
   нуться в оболочку после ее автодозагрузки с системного диска
  -если вам  не  потребуется  возвращаться в оболочку, то смело
   можете использовать адреса 63000-137777
  -если вам не нужен TURBO VISION, то можно использовать адреса
   50000-137777.
  -ну а если после загрузки программы,вам вообще ничего не пот-
   ребуется, то вам доступна вся память компьютера.

 Естественно, что все сказанное  справедливо только для страниц
 7 и 6. Другие страницы доступны  полностью и по любым адресам,
в  любое  время  не зависимо от  условий и погоды. И не следует
держать  подключенной  страницу  7 или 6, лучше забудте что они
вообще есть. Более того, их не надо подключать и для того, что-
бы выполнить ЕМТ115 или ТRAP.  Система позваляет хранить, запи-
сывать и читать файлы длиной  до  200000 байт, если длина файла
задана в байтах,  и хранить длиной до  32 мегабайт  если  длина
задана  в  блоках  (такие файлы можно читать и писать только по
частям).
  Да и еще: в оболочку можно вернуться примерно так:

                     RET -если стек еще в порядке,

            или так:

                     HALT -если вектор 4 еще цел,

    а можно вот так:

                     JMP @#200 -если там еще что-то есть,

         и даже так:

                     MOV #54400,@#177716
                     JMP @#63000     -если хоть там что-нибудь
                                      осталось.

 ─────────── Адреса, содержащие некоторые точки входа ─────────

 JMP @63120 - вход в оболочку без переоткрывания панелей
              (пример: запуск программы "graber4.exe")
              Но надо быть уверенным, что страницы 5,6,7 не бы-
              ли существенно изменены. (поэкспериментируйте)
 JMP @63136 - вход в оболочку с переоткрыванием панелей, но без
              перечитывания каталогов панелей.
              (пример: возврат из "csiview.exe")

             Существуют и другие точки входа, но они мало инте-
ресны для широкого применения и потому здесь не рассматриваются

 ══════════════════════════════════════════════════════════════
    При запуске файла из оболочки устанавливаются текущими те
директория и привод, которые:
   -были на текущей панели (на которой стоял файловый курсор)
   -были установлены последней командой CD, если файл запус-
    кался из командного файла
 ══════════════════════════════════════════════════════════════

 ══════ Системные ячейки, используемые ядром CSIDOS 3.20 ══════

40520-41520...область для чтения одного блока каталога
   B41521.....=10 статус БК0010, =0 статус БК0011М
              (действителен при записи файла на диск)
   B41522.....номер привода
   B41523.....номер директории
   W41524.....адрес записи о файле в блоке каталога
   W41532.....номер блока для каталога
   W41534.....начальный блок свободной области
    42602.....54 байта.Копия магнитофонного блока параметров
   W42666.....страницы 0 и 1 (слово для записи в 177716)
43552-43640...блок параметров дисковода
44000-44377...служебные ячейки CSIDOS
   B47774.....номер системного привода
   B47775.....если не равен 0 то после операции двигатель
              дисковода забывает выключаться.

        @::От меня лично: ( DieMon Soft. Inc.)

   56120 =200 Длина звука нажатой кл-ши (R1) CSI.
   56124 =4   Тон звука (R0)
                ( CALL @#143654 )
   56140 .... П/п вывода курсора мыши. =207 - Курсор не выво-
              дится. Перед записью #207, сохранить содержимое
              этой ячейки.
   56502 .... Код символа по TRAP. Обнулять, чтобы не было "за-
              цикливания" по выходу из п/п.

 ══════════════════════════════════════════════════════════════
   ВСЕ АДРЕСА ДЕЙСТВИТЕЛЬНЫ ПРИ ПОДКЛЮЧЕННОЙ 7-Й СТРАНИЦЕ В
   НУЛЕВОЕ ОКНО.
 ══════════════════════════════════════════════════════════════

 ────────── Системные ячйки используемые "X-SHELL" : ──────────

    W63002 .. номер панели (0 или 2)
  ! W63004 .. номер версии (3020)
  ?*W63006 .. тип панели: 0-FULL, 20-BRIEF,
                        177776-TREE, 177777-INFO
  !*W63012 .. адрес каталога
   *W63016 .. адрес файла на который указывает файловый курсор
   *B63036 .. номер привода
   *B63037 .. номер директории
  !*W63042 .. емкость устройства в блоках
   *W63046 .. количество занятых блоков
   *W63062 .. количество блоков в выделеных файлах
   *W63066 .. количество выделенных файлов
  !*W63076 .. адрес курсора на экране
  !*W63102 .. адрес панели на экране
  !*W63106 .. адрес поля на экране для каталога
  ! W63074 .. адрес начала bat-файла в памяти
    W63112 .. адрес имени файла на который указавает курсор
              (не зависит от номера панели)
  ! B63114 .. номер системного привода
    W63116 .. адрес программы для чтения каталога чужих систем
              (используется программой "graber4.exe")
              Если содержимое равно 0 то программа отсутствует.
              Эта программа должна находится в 4-й странице с
              адреса 135000 и иметь первое слово 123123, затем
              коды программы.

        @::От меня лично: ( DieMon Soft. Inc.)

    61404 =11 Высота символов по TRAP.



  Условные обозначения:

   !....содержимое этой ячейки менять нельзя!
   W,B..размер ячейки: слово или байт.
   *....доступ к этой ячейке имеет примерно такой вид:

         MOV @#63002,R0   ;загрузить номер панели в R0
         MOV 63012(R0),R1 ;загрузить адрес каталога текущей
                          ;панели в R1
 то есть в адресе 63012 лежит адрес каталога  для панели 0 (ле-
 вой),  а  в  адресе  на 2  больше адрес каталога  для панели 2
(правой).


 ────────────────── Работа с накопителем ( ями ) ──────────────

 Обращение к  системе происходит через магнитофонный блок пара-
метров,  состоящий  из  54 байт.  Адрес блока помещается в R0 и
подается команда EMT 115.  В нулевом байте блока помещается ко-
манда системе.При записи и переименовании файла система смотрит
первый байт: если он содержит  0 или 1,  то если находится файл
с таким же именем на диске, то он  удаляется,  если первый байт
содержит код 2, то при обнаружении файла  с таким же именем вы-
дается ошибка (код 20).  Перед  работой с диском, если нет уве-
ренности что система проинициализирована,  то нужно сделать это
в программе (если это не покажется трудным):

                MOV #54400,@#177716 ;инициализация с сохране-
                CALL @#45010        ;нием ранее установленного
                                    ;привода.
                       или

                MOV #54400,@#177716 ;инициализация с установкой
                MOV #DRIVE,R0       ;нового привода DRIVE
                CALL @#45000        ;


 ──────────────────── Блок параметров чт/зап. ─────────────────

       0 (2)... команда системе
       2 (2)... адрес
       4 (2)... длина (при записи)
       6 (20).. имя файла (трансформируется в формат CSIDOS)
  26(1),27(1).. страницы 0 и 1 соответственно (отрицательное
  значение - подключение текущих страниц,взятых из ячейки 114)
                          Блок ответа
      30 (2)... адрес загрузки прочитанного файла
      32 (2)... длина прочитанного файла
      34 (20).. имя прочитанного файла

 ─────────────────── Команды системы ( чт/зап ) ───────────────

  Данные команды записываются в первый байт блока параметров:

  0...запись файла на диск (или спасти его, как у англичан)
200...резервирование блоков. Если 52(R0)=0, то запись о файле
      в каталог не заносится. Выход: R3-номер первого блока,
      следующего за прочитаным.
  1...чтение файла
201...чтение метки файла из каталога в 30(R0).
  2...поиск файла. В адресе 41524 наход. адрес записи о файле
  3...RENAME. 6(R0)- новое имя, 34(R0)- имя из каталога
  4...чтение файла.Выход: R3-номер блока следующего за прочит.
  5...выключение двигателя (если еще не выкрутился)
  6...удаление файла (не печальтесь его еще может быть и можно
      востановить в программе "cds2.exe")
  7...запись файла:
      2(R0)...адрес файла в памяти
      4(R0)...длина файла в байтах
      26(R0)..окна
      30(R0)..адрес для каталога
      32(R0)..окна для каталога
207...то же что и команда 7 но длина в блоках
 10...не используется (выключение двигателя, для настырных)
 11...чтение файла без номера директории. Выход: R3-номер блока
211...то же что и 201 но без номера директории
 12...удаление директории (вот ее вы уже не востановите)
 13...создание директории (если такой нет) и вход в нее
 14...операции с установкой пути: 54(R0)- начало описания пути
      (106 байт максимум) далее байт 0 и код любой и перечис-
      ленных команд.После выполнения команды возвращается ста-
      рый драйвер и директория (возвращение блудного сына)
      Если код команды 177,то после поиска пути устанавлива-
      ется новая директория и драйвер, описанные в пути.
 15...трансформация имени файла. Вход: 6(R0)- имя для транс-
      формации.Выход: 34(R0)- странсформированное (уф-ф!) имя.
 16...чтение по номеру блока
       2(R0)- адрес для массива
       4(R0)- длина массива
       6(R0)- номер блока на диске
 17...запись по номеру блока (см. ком. 16)
 20...установка привода. 2(R0)- номер привода.
 21...чтение файла. ответ в блок параметров не передается.
      (для наиболее привередливых программ)

  В командах,если файл вылезает за пределы страницы, подключен-
ной  в верхнее окно, адрес файла должен быть кратен 1000, тогда
система  подключает две страницы, следующие по порядку от стра-
ницы в  верхнем  окне,  и продолжает операцию. Следует заметить
что система подключит новые  страницы  лишь в том случае, когда
номера страниц заданы явно.

     например:   1,2 - страницы заданы явно:
                       1 страница в нижнее окно,
                       2 страница в верхнее окно,
                 0,0 - заданы неявно: страницы берутся из ката-
                       лога. (справедливо только при чтении)
               177,2 - одна из страниц задана не явно:
                       177- это код страницы 7
               377,3 - одна из страниц задана не явно:
                       377- это означает, что в данном окне
                       остается ранее подключенная страница.

В байтах 26 и 27 магнитофонного блока пареметров хранятся стра-
ницы для работы с диском. Если они равны  0,0 при чтени, берут-
ся номера страниц из каталога,  при другой операции это страни-
цы 0,0.
    Tак  как  страницы  подключаются  через монитор БК0011М, то
ошибку  отловить  невозможно  (при неправильных номерах страниц
операция  прекращается,  устанавливается  бит C- ошибка,  а вот
код ошибки может быть любым("ку" как,говорится в одном из филь-
мов :)  так что за кодами страниц следите сами.
   Если в данной операции страницы безразличны, то можно просто
очищать ячейку 26(R0).

 ════════ Ошибки, выдаваемые системой в адресе 52(R0) ═════════

     при oшибке после EMT 115 устанавливается бит C

     1-13.....стандартные ошибки КНГМД
       14.....не используется в данной версии
       15.....нет места на диске или в каталоге
       16.....диск не в формате "CSIDOS"
       17.....файл или директория не найдены
       20.....файл уже есть

 ══════════════════════════════════════════════════════════════

      ┌══════════════════════════════════════════════════┐
      │ ■■■■■■┐  ■■┐  ■■┐  ■■■■■■┐   ■■■■■■┐    ■■■■■┐   ├┐
      │ └─■■┌─┘  ■■│  ■■│  ■■┌──■■┐  ■■┌──■■┐  ■■┌──■■┐  ││
      │   ■■│    ■■│  ■■│  ■■│  ■■│  ■■■■■■┌┘  ■■│  ■■│  ││
      │   ■■│    ■■│  ■■│  ■■■■■■┌┘  ■■┌──■■┐  ■■│  ■■│  ││
      │   ■■│    └■■■■■┌┘  ■■┌──■■┐  ■■■■■■┌┘  └■■■■■┌┘  ││
      │   └─┘     └────┘   └─┘  └─┘  └─────┘    └────┘   ││
      │  ■■┐  ■■┐ ■■┐  ■■■■■■┐  ■■┐   ■■■■■┐   ■■┐  ■■┐  ││
      │  ■■│  ■■│ ■■│ ■■┌────┘  ■■│  ■■┌──■■┐  ■■■┐ ■■│  ││
      │  ■■│  ■■│ ■■│ └■■■■■┐   ■■│  ■■│  ■■│  ■■┌■┐■■│  ││
      │  └■■┐■■┌┘ ■■│  └───■■┐  ■■│  ■■│  ■■│  ■■│└■■■│  ││
      │   └■■■┌┘  ■■│ ■■■■■■┌┘  ■■│  └■■■■■┌┘  ■■│ └■■│  ││
      │    └──┘   └─┘ └─────┘   └─┘   └────┘   └─┘  └─┘  ││
      └╤══════════════[(C)1994 CAROLINE─SOFTWARE─INC.]═══┘│
       └══════════════════════════════════════════════════┘

 ══════════════════════════════════════════════════════════════

 В последнее время появилось много систем использующих окна, но
все они имеют как отдельные так и общие большие недостатки:
почти все они исключают работу в цветном режиме,  нелепая  имит
ация теней (я в жизни не видел белых теней), придающая довольно
глупый вид программе, недопустимо медленный вывод окна.
 Практически все системы с окнами являются неотъемлемой  частью
программы с которой они работают, они закрыты от внешнего мира.
  Система "TURBO VISION" свободна от этих недостатков и облада-
ет рядом приемуществ :

- система полностью самостоятельна. К ней можно  обращаться  из
  любой программы, находящейся в любой странице по любым адре-
  сам;
- она не занимает рабочей памяти;
- поддерживает режим 128/256 Кбайт при расширении памяти;
- работает в режиме 64 символа в строке;
- текст читабелен на ЦТВ и ЧБ мониторах;
- многоуровневый режим вывода окон;
- поддерживает мышь (без контроллера),что дает возможность соз-
  давать программы не требующие клавиатурного вмешательства;

 ══════════════════════════════════════════════════════════════

  Система находится в 7 странице по адресам 54300-62776

 ──────────── Описание команд "TURBO VISION v3.0" ─────────────

 Данная система является монитором для CSIDOS-3nn Все обращения
к данной системе осуществляются через каманду TRAP #X.
  Система находится в системной странице, а обращаться можно из
любой страницы, лишь копия системного регистра должна находить-
ся по адресу @#114
  В качестве экрана система использует 5 страницу.
  Примеры приведены в мнемонике ассемблера MICRO-11D.
  Стек пользователя должен находиться ниже адреса 40000.

 ══════════════════════════════════════════════════════════════

                           ВНИМАНИЕ !
  С целью уменьшения программы TURBO VISION, ошибки не проверя-
ются, поэтому, воизбежании зависаний и глюков, а так-же других,
негативных и побочных явлений, не следует вводить данные, выхо-
дящие за диапазон допустимых в данной команде !!!

 ══════════════════════════════════════════════════════════════

                     Инициализация системы:
MOV  #54400,@#177716
CALL @#45010
CALL @#54300
     или
МOV  #54400,@#177716
MOV  #DRIVE,R0; номер привода для CSIDOS
CALL @#45000
CALL @#54300

 После этого все обращения  через  TRAP  будут  перехватываться
"TURBO VISION", а ЕМТ 115 будет работать с диском #DRIVE.

 ══════════════════════════════════════════════════════════════

-TRAP 0         - передает управление программе, находящейся по
                  адресу 63000 в системной странице (CCSHELL).

 ══════════════════════════════════════════════════════════════

-TRAP 2,3       - устанавливает страницу и адрес буфера под со-
                  хранение места, на которое будет выводиться
                  окно.

        МОV #ADDRES,R0      или :       TRAP 3
        TRAP 2                         .#ADDRESS
       .#PAGE                          .#PAGE

       .#ADDRES - адрес буфера (100000 и выше)
       .#PAGE   - страница под буфер (0,1,2,3,4,6)

 ══════════════════════════════════════════════════════════════

-TRAP 4,5       - опрос клавиатуры. В R0  возвращается код сим-
                  вола или адрес мыши, а также  устанавливаются
                  биты СП.

        МОV #SUBR,R0        или :       ТRАP 5
        TRAP 4                          .@SUBR

        SUBR    - адрес подпрограммы, которая выполняется, если
                  не нажата никакая клавиша. Если  адрес меньше
                  2, то п/п не выполняется. Если четный -  кур-
                  сор не  выводится, если  нечетный - выводится
                  моргающий курсор.

        Биты СП, устанавлевымые при выходе:

        Z-нажата клавиша "КТ" (в R0 кoд 3)
        N-нажата клавиша в регистре "АР2"
        V-нажата правая кнопка мыши (В R0 адрес мыши)
        C-нажата левая  кнопка мыши (В R0 адрес мыши)

 ══════════════════════════════════════════════════════════════

-ТRAP 6,7       - вывод  символа в  открытое  окно.

        МОV #SYMBOL,R0      или         TRAP 7
        TRAP 6                         .#SYMBOL

                  Управляющие коды:

        .B:2 -  очистка окна,начиная с текущей строки и до кон-
                ца
        .B:10 - курсор влево ;
        .B:12 - ПС+ВК ;
        .B:14 - очистка всего окна ;
        .B:31 - курсор вправо ;
        .B:32 - курсор вверх ;
        .B:33 - курсор вниз ;
        .B:40 и выше - печатаемые символы

 ══════════════════════════════════════════════════════════════

-TRAP 10,11     - ввод или редактирование строки. Выводится ин-
                  версная строка для  редактирования. Если пер-
                  вая нажатая кл-ша "управляющая", то строка с-
                  брасывается. После этого происходит ее редак-
                  тирование. Выходные данные как у TRAP 4,5.

        MOV #STROKA,R0      или         TRAP 11
        TRAP 10                        .@STROKA

        STROKA: .B:34 .A:привет от CAROLINE SOFTWARE.
       .B:0

                  Первый байт строки не выводится и показывает,
                  максимально возможное кол-во символов. После
                  редактирования, незначащие пробелы заполняют-
                  ся нулями.

 ══════════════════════════════════════════════════════════════

-TRAP 12,13     - вывод строки символов. Управляющие коды:

        .B:1  .A:вывод строки по середине строки окна .B:0 ;
        .B:3  .A:вывод заголовка в открытое окно      .B:0 ;
        .В:16 .В:20 .В:10 .В:201 .В:210 .В:0 ;разметка окна ли-
                ниями по горизонтали;
        .В:17 .В:ХCUR .B:YCUR; установка новых координат курсо-
                ра;
        .В:20+COL; установка цвета фона (0,1,2,3) ;
        .В:24+COL; установка цвета символов (0,1,2,3) ;

        MOV #STROKA,R0      или         TRAP 13
        TRAP 12                        .@STROKA

        STROKA: .B:23 .B:25 .B:1 .A:сброс
       .B:0 .B:12 .A:перевод
       .В:0

 ══════════════════════════════════════════════════════════════

-ТRAP 14,15     - установка координат курсора в окне.

        MOV (PC)+,R0        или         TRAP 15
       .B:XCUR .B:YCUR                 .B:XCUR .B:YCUR
        TRAP 14

 ══════════════════════════════════════════════════════════════

-TRAP 16,17     - установка аттрибутов.

        MOV #SYMB*4+FON,R0  или         TRAP 13
        TRAP 12                        .#SYMB*4+FON

 ══════════════════════════════════════════════════════════════

-TRAP 20        - закрытие последнего открытого окна, и восста-
                  новление состояния предыдущего окна (коорди-
                  наты, цвет фона, символов ) либо экрана.
                   Только в том случае, когда окно открывалось
                  с включенным битом 15 ( см. TRAP 22,23 )

 ══════════════════════════════════════════════════════════════

-TRAP 22,23     - открытие нового окна.

        MOV #ADRSCR,R0      или         TRAP 23
        TRAP  22                       .#ADRSCR
       .@WINDOW                        .@WINDOW

        WINDOW: .#REGIM .B:XLEN .B:YLEN

        ADRSCR  - адрес вывода окна (100000 и выше). Он дожен
                  быть четным
        XLEN    - ширина окна в байтах ( четное число )
        YLEN    - высота окна в символьных строках
        REGIM   - ячейка режимов:

бит 15 =1 - запомнить место под окном (это окно можно закрыть)
       =0 - не запоминать - / - (это окно нельзя закрыть)
бит 14 =1 - окно с тенью
       =0 - окно БЕЗ тени
бит 13 =1 - вывести текст в окне
       =0 - нет  - / -
бит 12 =1 - вывести бары               код:    цвет:
       =0 - нет  - / -
бит 5  =1 - тень вся черная            00 - черный
       =0 - тень прозрачная            01 - синий
биты 2,3  - цвет символов              10 - зеленый
биты 0,1  - цвет фона                  11 - красный

  Если установлен 13 бит то после YLEN ставится  .@ADRTEXT
  ( Формат, как в TRAP 12,13 )
  Если установлен бит 12 то дописывается база данных для баров.
  ( Формат такой же, как и у TRAP 34,35 ).

 После открытия окна, вся информация выводится только в это ок-
но, все скроллинги будут затрагивать только это окно,координаты
курсора будут отсчитываться от левого верхнего угла этого окна.

 ══════════════════════════════════════════════════════════════

-TRAP 24,25     - переназначение рабочего пространства на экра-
                  не, минуя закрытие/открытие окон.

        MOV #ADRSCR,R0      или         TRAP 25
        TRAP 24                        .#ADRSCR
       .B:XLEN .B:YLEN                 .B:XLEN .B:YLEN

        ADRSCR  - aдрес на экране (100000 и выше). Должен быть
                  нечетным
        XLEN    - ширина пространства в байтах ( четное ).
        YLEN    - высота пространства в символьных строках.

 ══════════════════════════════════════════════════════════════

- ТRAP 26,30    - чтение адреса курсора и координат курсора со-
                  ответственно, которые помещаются в R0.

 ══════════════════════════════════════════════════════════════

- TRAP 34,35    - вывод баров.

        MOV #ADRBAR,R0      или         TRAP 35
        TRAP 34                        .@ADRBAR

        ADRBAR: .B:B1X .B:B1Y .B:B2X .B:B2Y ... .B:ATTR .B:377
       .@SUBR1 .@SUBR2  ...
       .A:BAR1
       .B:0 .A:BAR2
        ... ......
        ... ......
       .B:0 .B:0

        B1X,B1Y,B2X,B2Y,... - описание позиций (координат) ба-
                  ров в окне ( на экране ) в симв. значениях
        ATTR    - фон и цвет бара когда он выбран.

  Если установлен бит 7 то при выборе баров блокируются клавиши
"стрелка ВЛЕВО", "стрелка ВПРАВО" (организуется режим-PULLDOWN)
SUBR1,SUBR2, - подпрограммы которые выполненяются в зависимости
от выбранного бара. Если при завершении подпрограммы установлен
бит "С",то происходит отказ от дальнейшего выбора баров.
BAR1,BAR2,....- надписи баров.

 Бар выбирается стрелками и мышью, активизируется клавишей ВВОД
или левой кнопкой мыши, отказ от  баров  производится  клавишей
"КТ" или правой кнопкой мыши.

 ══════════════════════════════════════════════════════════════

-ТРАP 36,37     - вывод строки символов на экран по адресу.

        MOV #ADRSCR,R0      или         TRAP 37
        TRAP 36                        .#ADRSCR
       .@STRING                        .@STRING

       .#ADRSCR - адрес экрана от 100000.
       STRING: .A:Строка как в TRAP 12,13
               .B:0

  В строке можно установить цвет фона и символов также,  как в
TRAP 12,13.

 ══════════════════════════════════════════════════════════════

-TRAP 40,41     - аналогично TRAP 4,5, но задержки при автопов-
                  торе не происходит...

 ══════════════════════════════════════════════════════════════

    (С) 1994 А.МЕЛЬНИКОВ CAROLINE SOFTWARE INC. г.САМАРА
  (C) 1995 A.V.M. Caroline Sofware Inc. Samara-city, Russia.

   Я думаю вы простите мои дурацкие вставки-шутки, но поверьте,
что писать документацию такая скукотища.

                                           Алексей Мельников
 ══════════════════════════════════════════════════════════════
    Отредактировано и "скомкано" из двух-трех разных файлов :
 10.09.2000 (C) DieMon Software Inc. Samara City. (PFPI/FDN GC)
 ══════════════════════════════════════════════════════════════

