
┌──────────────────────────────┬──────────────────────────────┐
│▓▓▓▓▓ ▓   ▓ ▓▓▓▓  ▓▓▓▓   ▓▓▓  │ ▓   ▓  ▓  ▓▓▓▓ ▓  ▓▓▓  ▓   ▓ │
│  ▓   ▓   ▓ ▓   ▓ ▓   ▓ ▓   ▓ │ ▓   ▓  ▓ ▓     ▓ ▓   ▓ ▓▓  ▓ │
│  ▓   ▓   ▓ ▓▓▓▓  ▓▓▓▓  ▓   ▓ │ ▓   ▓  ▓  ▓▓▓  ▓ ▓   ▓ ▓ ▓ ▓ │
│  ▓   ▓   ▓ ▓   ▓ ▓   ▓ ▓   ▓ │  ▓ ▓   ▓     ▓ ▓ ▓   ▓ ▓  ▓▓ │
│  ▓    ▓▓▓  ▓   ▓ ▓▓▓▓   ▓▓▓  │   ▓    ▓ ▓▓▓▓  ▓  ▓▓▓  ▓   ▓ │
└──────────────────────────────┴──────────────────────────────┘

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



           ОБЩИЕ СВЕДЕНИЯ О СИСТЕМЕ "TURBO VISION" :

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

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

              ОПИСАНИЕ КОМАНД "TURBO VISION v3.0"

  Данная  система  является  монитором  для   CSIDOS'a-3.   все
обращения  к  данной   системе   осуществляются   через   TRAP.
обращаться можно и через ЕМТ, для этого к номеру  TRAP'a  нужно
прибавить число 300, например, ТRAP 6 и EMT 306, a  TRAP  можно
использовать для других целей. Системную страницу подключать не
обязательно. для вызова  необходима  копия  регистра  177716  в
ячейке 114 .

      в качестве экрана система использует 5 страницу.
     примеры приведены в мнемонике ассемблера MICRO11D.
   стек пользователя должен находиться ниже адреса 40000.

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

---------------------------------------------------------------
          ИНИЦИАЛИЗАЦИЯ СИСТЕМЫ:

          MOV #54400,@#177716
          CALL @#45010
          CALL @#54300

          ИЛИ

          МOV #54400,@#177716
          MOV #DRIVE,R0  ; номер привода для CSIDOS
          CALL @#45000
          CALL @#54300

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

ВНИМАНИЕ: только для инициализации необходимо подключить
          7 страницу с адреса 40000

                            TRAP 0
         передает управление программе находящейся по
    адресу 63000 в системной странице ( оболочка CSIDOS'а)

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

          МОV #ADDRESS,R0 ;адрес буфера (100000 и выше)
          TRAP 2
          .#PAGE          ;страница под буфер (0,1,2,3,4,6)

          или                      TRAP 3
                                   .#ADDRESS
                                   .#PAGE

                           TRAP 4,5
   опрос клавиатуры. в R0 возвращается код символа или адрес
   мыши, а также устанавливаестся слово состояния процессора.

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

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

     биты ССП, устанавлевымые при выходе:
     Z-нажата клавиша "КТ" (в R0 koд 3)
     N-нажата клавиша в регистре "АР2"  (в R0 код клавиши)
     V-нажата правая кнопка мыши (в R0 адрес мыши)
     C-нажата левая  кнопка мыши (в R0 адрес мыши)


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

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

                          TRAP 10,11
  ввод или редактирование строки. выводится инверсная строка
  для редактирования. выходные данные как и у TRAP 4,5 .

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

        STROKA: .B:34 .A:ПРИВЕТ
                .+27

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

                          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

        ГДЕ SYMB= 0,1,2,3     и       FON= 0,1,2,3

                            TRAP 20
 закрытие последнего отрытого окна и восстановление состояния
      предыдущего окна (координаты курсора, цвет и т.д)

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

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

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

ADRSCR- адрес вывода окна (100000 и выше) он должен быть четным
        так же четным должен быть и XLEN.

  XLEN- ширина окна в байтах
  YLEN- высота окна в символьных строках

 REGIM -ячейка режимов:
   БИТ 17 =1 -запомнить место под окном(это окно можно закрыть)
          =0 -не запоминать ---//---- (это окно нельзя закрыть)
   БИТ 16 =1 -окно с тенью
          =0 -окно без тени
   БИТ 15 =1 -вывести текст в окне
          =0 -нет --//--
   БИТ 14 =1 -вывести бары
          =0 -нет --//--
   БИТ 5  =1 -тень черная
          =0 -тень прозрачная
   БИТЫ 2,3  -цвет символов
   БИТЫ 0,1  -цвет фона

  Если установлен 13 бит, то после YLEN ставится .@ADRTEXT
  Если установлен бит 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 и ТRAP 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 ;от 100000

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


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


    (С) 1994 А.Мельников CAROLINE SOFTWARE INC. г.САМАРА


