ЭЛЕКТРОННАЯ БИБЛИОТЕКА КОАПП
Сборники Художественной, Технической, Справочной, Английской, Нормативной, Исторической, и др. литературы.



 

Часть 13


                          Заявление OPEN
                          --------------

      Функция   OPEN    подготавливает файл или  устройство  считывания
      -------           или зписи.
      Синтаксис  OPEN файлспец [FOR режим] AS[#]файланом [LEN=размерза-
      ---------  писи]
               или OPEN режимная строка,[#]файланом, файласпец [,размер
                   записи]
      Замечания        Режим может быть одним из следующих:
      ---------        OUTPUT -  специфицируется  последовательный файл
                                 для записи в него;
       INPUT - специфицируется последовательный  файл для считывания из
               него;
       APPEND - специфицируется  последовательный файл для добавления к
                нему;
       RANDON - специфицируется  произвольный  файл для  считывания или
                записи;
       BINARY- специфицируется двоичный файл для считывания или записи;
       Режимная строка - это строчное выражение, первая (и обычно един-
       ---------------   ственная)  литера которого может быть одной из
       следующих:
         0 - специфицируется режим последовательного вывода
         I - специфицируется режим последовательного ввода
         А-специфицируется режим последовательного вывода в конец файла
         R - специфицируется режим произвольного ввода/вывода
         В - специфицируется режим двоичного ввода/вывода
         Файланом  может  быть  любым  целым числом. Для увеличения или
      уменьшения  этого значения используйте  DOS - заявление  FILES  в
      файле CONFIG.SYS (см. более подробную информацию в справочном ру-
      ководстве по DOS).
         Файланец  - это  строчное выражение специфицирующее имя файла,
      подлежащего  открыванию,  и,  опционально,  спецификация  привода
      и/или прохода.
         Размер записи - это  целое выражение, лежащее в диапазоне от 1
      до 32767  и  специфицирующее  длину  в байтах каждой записи файла
      произвольного  доступа. По умолчанию, размер записи: 128 байтов.
         Главная  функция  OPEN  состоит в привязке номера (файланом) к
      файлу  или  физическому  устройству и в подготовке устройства для
      считывания и/или записи. Этот номер, а не имя файла, используется
      в  каждом  заявлении, имеющем  ссылку на файл. Содержимое заявле-
      ние OPEN есть информация, указывающая  "режим файла"; т.е. спосо-
      бы, посредством которых будет осуществляться доступ к файлу: пос-
      ледовательный (для ввода, вывода в новый файл или вывода в сущес-
      твцющий файл),  произвольный  и  двоичный.  Заявление OPEN обычно
      уравновешивается согласованным с ним заявлением СLOSE (закрыть)
         Две формы команды отличаются только степенью многословности:
                 OPEN "Мой файл.dta " FOR OUTRUT AS#1
      имеет то-же действие, что и :
                 OPEN "0",#1 "мой файл.dta "
         Попытка открыть для Ввода несуществующий файл вызывает  ошибку
      53 периода прогона, Файл  не обнаружен. Если вы пытаетесь открыть
      несуществующий файл для вывода, добавления, произвольного доступа
      или двоичных  операций,  то он создается.
         См. также   OPEN COM
       
      Пример:
       'эта программа подразделяется на пять процедур. Различие между
       'процедурами состоит в режиме, в котором открывается файл и спо-
       'собе манипулирования  данными файла.
       DEF FN дать клавишу $ (сообщ$)
       PRINT Сообщ $, " нажмите любую клавишу чтобы продолжить ..."
       WHILE NOT INSTAT:WEND
       FN дать клавишу $ =INKEY $
       END DEF    'конец процедуры дать клавишу
       SUB последовательный вывод
       'этот файл открывается для последовательного вывода и в него за-
       'писываются некоторые данные
       КлавишиНаж $=FN Дать клавишу $ (теперь для последовательного_
        вывода)
       'открыть последовательный файл для вывода
       OPEN "OPEN.DTA" FOR OUTRUT AS#1
       Целое % =12345
       Время стр$="История делается ночью"
       'записать данные в последовательный файл
       WRITE#1,Времстр$,целое%*2,врем стр$, целое %\2
       CLOSE 1  закрыть файл
       END SUB 'конец процедуры " последовательный вывод".
       SUB последовательное добавление
       'файл открывается для последовательного вывода. Однако данные  в
       'этом случае добавляются в конце файла.
       Клавиши Наж$ = FN дать клавишу $ (теперь немного добавим)
       'открыть последовательный файл для добавления данных
       OPEN "OPEN.DTA"FOR APPEND AS#1
       Целое %=32123
       Врем Стр$ ="Наилучшее видение есть .... М.Форбе"
       'добавить данные
       WRITE#1,ВремСтр$, Целое%*0,2,Врем Стр$, Целое%\2
       CLOSE 1    'закрыть файл
       END SUB  'конец процедуры "последовательное добавление"
       SUB Последовательный Ввод
       -------------------------
       Файл открывается для последовательного  ввода, а данные, которые
      считываются, отображаются на экране.
       КлавишиНаж $=FN Дать клавишу $("теперь считаем обратно")
       'открыть последовательный файл и читать из него
       OPEN"OPEN.DTA" FOR INPUT AS#1
       'читать первую строку используя LINE INPUT#
       LINE INPUT #1,ВремСтр$
       PRINT ВремСтр$
       'использовать INPUT$ для считывания остальной части файла по од-
       'ной литере
       ВремСтр$=" "
       WHILE NOT EOF(1)  'проверка конца файла
       ВремСтр$ = ВремСтр$ + INPUT$(1,1)
       WEND

       PRINT ВремСтр $
       CLOSE 1    'закрыть файл
       КлавишиНаж $=FN Дать клавишу $(" ")
       END SUB     'конец процедуры Последовательный ввод
       SUB Двоичный ВВ
       'файл открывается для двоичного ввода/вывода.
       'данные считываются с использованием GET$.
       'SEEK  явно перемещает файловый показатель до конца файла, и, вы
       'записываете те-же данные обратно в файл.
       Клавиши Наж$ = FN ДатьКлавишу $ (теперь для двоичного ввода и_
            вывода)
       'открыть двоичный файл, читать из него
       OPEN "OPEN.DTA" FOR BINARY AS#1
       ВремСтр$=" "
       Использовать GET$ для считывания данных и их хранения в строке
       WHILE NOT EOF (1)
       GET$ 1,1 Лит $
       ВремСтр$ =ВремСтр $ + Лит$
       WEND
       PRINT ВремСтр $
       'переместить файловый указатель в конец файла
       SEEK 1, LOF (1)
       'PUT$ копирует данные обратно в двоичный файл
       FOR I% = 1 TO LEN (ВремСтр$)
       PUT$ 1, MID$ (ВремСтр$,I%,1)
       NEXT I%
       CLOSE 1     'закрыть файл
       КлавишиНаж$ = FN ДатьКлавишу $ (" ")
       END SUB    'конец процедуры Двоичный ВВ
       SUB Произвольный ВВ
       'открыть файл для произвольного ввода/вывода.
       'использовать FIELD для заявления буфера для утверждения данных,
       'которые записываются и считываются.
         GET и PUT  считывают и  записывают данные. Заметьте, что перед
      выполнением  GET  для хранения данных в буфере в буфере файла ис-
      пользуются 'LSET и  RSET.
       КлавишиНаж$ = FNДатьКлавишу$ (теперь для произвольного ввода/вы_
         вода)
       'открыть файл произвольного доступа
       OPEN "OPEN.DTA" AS #1 LEN=1
       FIELD 1,1 AS Лит$    'определить 1-байтовый буфер
       ВремСтр$ = " "
       ВремРазмер% =LOF (1)   'хранить размер файла
       'используя GET, считать файл целиком
       FOR I% = 1 TO ВремРазм%
       GET 1, I%
       ВремСтр$ = ВремСтр$ + Лит$    'хранить данные
       NEXT I%
       'PUT копирует данные обратно в произвольный файл
       FOR I% = LEN (ВремСтр$) TO1 STEP-1
       LSET Лит$ = MID$ (ВремСтр$, I%,1)
       PUT 1, LOF (1)   'вывод до конца файла
       NEXT I%
       CLOSE 1       'конец процедуры Произвольный файл
       'печать главной программы
       CALL Последовательный вывод
       CALL Последовательное добавление
       CALL Последовательный ввод
       CALL Двоичный ВВ
       CALL Произвольный ВВ
       END     'конец программы



                            Заявление OPEN COM
                            ------------------
      Функция  OPEN COM     открывает  и конфигурирует коммуникационное
      -------               высшее устройство.

      Синтаксис     OPEN " COM n [боды][,четность][,данные][,останов]_
      ---------     [опции]"
                    AS [*] файланом [LEN кол]

      Замечания        n - указывает  надлежащее  открыванию последова-
      ---------        тельное внешнее устройство ввода/вывода.  Боды -
      это целая константа, специфицирующая скорость коммуникации: зако-
      нными скоростями являются  75, 110, 150, 300,  600,  1200,  1800,
      2400, 4800 и 9600 (по умолчанию 300).
         Четность -это единственная литера, специфицирующая статус чет-
      ности  в  соответствии со следующими определениями:
       S - четность по пробелу (бит четности всегда 0)
       О - нечетный параллелизм
       М - маркированная четность(бит четности всегда 1)
       Е - четный параллелизм
       N - без  четности  (игнорируется на применяемых литерах и  опус-
      кается на  передаваемых литерах)
         По умолчанию - четный параллелизм.
         Данные - это целая константа от 5 до 8, специфицирующая  число
      битов  данных. По умолчанию 7.
         Останов  -это целая константа от 1 до 2, специфицирующая число
      битов данных. По  умолчанию бит останова 1 (для бодовых скоростей
      75 и  110 эта константа равна 2).
         Файланом - это целое выражение, которым специфицируется число-
      вая панель,через которую вы осуществляете доступ к коммуникацион-
      ному  внешнему устройству ввода/вывода.
         Кол - это максимальное число байтов, которое можно считывать с
      коммуникационного устройства или записывать на него с помощью GET
      и PUT; по умолчанию -это 128. Данное значение не может быть боль-
      ше  размера  буфера  для  этого  внешнего устройства, который ус-
      танавливается с помощью метазаявления  $COM.
         Заявление  OPEN COM включает в себя блок опций, который управ-
      ляет обработкой строки состояний, четностью  и  обработкой  возв-
      рата  каретки/подачи  строки.
         Опции = [,RS][,CS[м сек]][,DS[м сек]][,CD[м сек]][,LF][,DF]
         RS подавляет строку RTS.
         CS [м сек] управляет CTS.
         DS [м сек] управляет DSR.
         CD [м сек] управляет CD.
         LF вызывает добавление литера подачи строки к каждой литере
      возврата каретки.
         PE включает проверку четности.
         Аргумент м сек опций CS, DS, CD может лежать в диапазоне от  0
      до 65535 и специфицирует сколь долго (в миллисекундах) Турбо-Бей-
      сик будет находиться в состоянии ожидания перед возвращением оши-
      бки Устройство на Перерыве. Если этот аргумент  равен 0 или опус-
      кается, то проверка строки состояния не выполняется. По умолчанию
      м сек равен 1000 для СS и DS и 0 для CD.
         См. также   COM
                     $COM
                     ON COM
       Пример:
       'разместить строчный массив для хранения, ввода  DIM  КомПортВ-
       'вод$ (1)
       $COM1 1024   'построить 1 К буфер ввода
       OPEN "COM1" AS#1 LEN = 1
       PRINT "нажмите любую клавишу для  завершения программы ...."
       WHILE NOT INSTAT 'пока клавиша еще не нажата
       'если в наличии есть какой-либо ввод
       IF LOF (1) > 0 THEM
       'читать все что имеется в буфере ком. устройства
       КомПортВвод$(0) = INPUT$ (1, LOF(1))
       Отобразить ввод
       PRINT "Ввод Ком-устройства:", КомПортВвод $(0)
       END IF
       WEND
       END    'конец программы



                             Заявление OPTION BASE
                             ----------------------
      Функция  OPTION BASE  устанавливает минимальное значение для под-
      -------               строчных индексов массивов .
      
      Синтаксис   OPTION BASE целое выражение
      ---------
      Замечания       Целое выражение может находиться в диапазоне от 0
      ---------       до 32767. OPTION BASE управляет тем, какое значе-
      ние подстрочного индекса  относится к первому элементу переменных
      массива.Например, после  OPTION BASE 1, заявляющее массив x с по-
      мощью заявления DIM x(20) устанавливает отдельную память  для  20
      элементов  (от1 до 20), а не 21, устанавливаемое по  умолчанию(от
      0 до 20).
         Хотя вы можете использовать OPTION  BASE  для управления  диа-
      пазонами подстрочных индексов, Турбо-Бейсик предлагает более мощ-
      ный способ через заявление DIM.
         Ст. также DIM
       
      Пример:
                 'разместить массив из трех целых
                 DIM Первый массив % (2)
                 'установить начальный индекс любого заявленного
                 'массива
                 OPTION BASE 1
                 'разместить массив из двух целых
                 DIM Второй массив % (2)
                 FOR I% = 0 TO 2
                 'нет нулевого индекса; проверка на 0
                 IF I% > 0 THEN
                 Второй массив % (I%)=I%
                 END IF
                 Первый массив % (I%) =I%
                 NEXT I%
                 FOR I% =0 TO2
                 'нет нулевого индекса; проверка на ноль
                 IF I% >0 THEN
                 PRINT Второй массив
                 END IF
                 PRINT Первый массив% (I%)
                 NEXT I%
                 END  ' конец программы



                                Заявление OUT
                                -------------
      Функция   OUT  обеспечивает запись на внешнее устройство
      -------        ввода/вывода
      
      Синтаксис     OUT портном, целое выражение
      ---------
      Замечания        OUT  посылает байтовое значение (от 0 до 255) на
      ---------        аппаратное  внешнее  устройство  вывода портном,
      где портном -  это  целое выражение от 0 до 65535.
         OUT необходимо для управления различными аппаратными подсисте-
      мами, такими  как коммуникационный или видео-адаптер.  Используе-
      мое неправильно  OUT может легко разрушить систему.

      Пример:
        'программа делает вопль звукоизлучателя посредством  считывания
        'регистра состояний и тумблерного переключения (включить и вык-
        'лючить) битов, которые управляют звукоизлучателем.
        'считать значение в Порт 61 шестнадцатиричное
        СостояниеРег % = INP (&H61)
        СостояниеРег % = СостояниеРег % AND &HOOFC
        'маскировать считываемое значение
        'сделать тон достаточно длительным для слухового восприятия
        FOR I = 1 TO 1000
        СостояниеРег % = CостояниеРег% XOR 2 ' тумблерное переключение_
        'звукоизлучателя
        OUT &H61, СостояниеРег%   'вывод нового состояния
        DELAY.001
        NEXT I
        END

                             Заявление PAINT
                             ---------------

      Функция   PAINT  обеспечивает  заполнение  замкнутой  зоны экрана
      -------          выбранным цветом
      
      Синтаксис   PAINT(x,y) [I,цвет][I,граница][,фон]
      ---------
      
      Замечания       (x,y)-координаты исходной точки в замкнутой зоне,
      ---------       подлежащей заполнению. Если исходная точка в пре-
      делах  замкнутой  зоны, то заполняется ее внутренняя часть.  Если
      исходная  точка вне замкнутой  зоны, то будет заполняться поверх-
      ность экрана с наружной стороны замкнутой зоны. Цвет - может быть
      либо числовым, либо строчным  выражением. Если это числовое выра-
      жение, им специфицируется аттрибут (цвет), которым будет осущест-
      вляться заполнение. Если это строка, то  она  содержит информацию
      маски, которая вызывает заполнение с помощью  какого-то графичес-
      кого образчика, а не сплошным цветом. Если  вы  не специфицируете
      цвет, используется цвет нужного фона.
         Граница - это цвет бордюра заполняемой вами  фигуры.  Действие
      PAINT  прекращается  всякий  раз, когда  на пути встречается цвет
      границы.
         Фон  - это  опциональная строчная маска, используемая когда вы
      желаете перекрасить зоны. Фоновая маска представляет собой  некий
      черепичный пластик перехода при  проверке уже закрашенных зон.
         С помощью заявления PAINT можно заполнять любую замкнутую фор-
      му, вне зависимости от ее сложности. Турбо-Бейсик выбирает  байт,
      подлежащий  графической   обработке,  с  использованием   формулы
      y mod tike length (y mod черепицы длина).Обеспечивает уверенность
      в замкнутости подлежащего заполнению режима, поскольку при "утеч-
      ке" заполнителя может оказаться испорченной вся ваша картина.
         Если аргумент цвет числовой, PAINT  заполняет форму  указанным
      цветом,  останавливаясь на пикселах с атрибутом граница или атри-
      бутом - цвет. Если цвет - строчное выражение, то для  определения
      образчика, которым подлежит заполнению зона, используется принцип
      "черепицы".
         Образчик,  представляемый строчными значениями аргументов цве-
      та, имеет 1-байтовую ширину (4 пиксела при  средней  и 8 пикселов
      при высокой степени разрешения) и от 1 до 64 байтов длину(т.е. от
      1 до 64 строк сканирования по вертикали). При черепичной обработ-
      ке цвет должен представляться в таком формате:
                       CHR$(&Hnn) + CHR$(&Hnn) ...
         Маска  базируется на основных битовых значениях цвета,  причем
      первая  литера  представляет  первую строку образчика, вторая ли-
      тера - вторую строку и т.д.
         Например, следующий образчик представляет образчик в виде шах-
      матной доски (50% серого) в режиме высокой разрешающей способнос-
      ти:
          10101010 (первый байт)
          01010101 (второй байт)
         Чтобы заполнить какую-либо зону этой шахматной доской, строит-
      ся строка  с  подходящей информацией маски. Прежде всего преобра-
      зуйте двоичную  форму в шестнадцатиричную:
          10101010 = &HAA
          01010101 = &H55
         Теперь конструируйте двухсимвольную строку, используя CHR$:
                   Образчик $=CHR$(&HAA) + CHR$ (&H55)
         Далее, заявление:
                   PAINT (50,50), образчик $
      обеспечивает заполнение серой (шахматная доска) краской.
         Фон - используется для определения условия останова, когда за-
      полняется  уже обработанная образчиком зона. Если операция запол-
      нения попадает  на  пиксел, который согласуется с соответствующим
      битом  в  фоне, то  заполнение  не прекращается, даже этот пиксел
      имеет цвет границы.
         При черепичной  обработке  число  цветовых аттрибутов в каждом
      экрранном режиме определяет каким образом конструируется экранный
      образчик. Помните, что число битов на пиксел коррелируется с чис-
      лом цветовых аттрибутов в любом данном экранном режиме. Для вычи-
      сления  количества битов на пиксел вы можете воспользоваться сле-
      дующей формулой:
                   LOG  (X) = Y,
                      2
      где  X равно сумме цветовых аттрибутов вашего экрана, а  Y  равно
      числу битов на пиксел.
      
                      Черепичная обработка в Экране 1.
      
         При  средней  разрешающей  способности, используя  приведенную
      выше  формулу, X равно 4 пикселам (которые представляются 1 чере-
      пичным байтом средней разрешающей способности), поэтому Y равно 2
      битам  на  пиксел. Поскольку  каждый пиксел имеет соответствующий
      цветовой  аттрибут, он  будет  занимать  2 бита черепичного байта
      для описания 1 вывода 4 аттрибутов.
         В  следующей таблице  показаны  десятичные и шестнадцатиричные
         значения, которые соответствуют каждому аттрибуту:
      -----------------------------------------------------------------
      Цветовая       Аттрибут        Образчик           Образчик
      палитра        в двоичном      в двоичном     в шестнадцатиричном
      -----------------------------------------------------------------
      0
      зеленый           01            01010101             &H55
      красный           10            10101010             &HAA
      коричневый        11            11111111             &HFF
      -----------------------------------------------------------------
      1
      цинковый          01            01010101             &H55
      анилиновый        10            10101010             &HAA
      белый             11            11111111             &HFF
      -----------------------------------------------------------------

                  Черепичная обработка на Экране 2

         Имеется  1 бит  на пиксел при высокой разрешающей способности,
      позволяющий  каждую  черепицу  представлять &-пиксельным экраном.
      Где бы маска  не  оценивалась  значением 1, на графике появляется
      точка. Строка может содержать до 64 байтов.
         Образчик  вызывается  одинаковым образом по всей протяженности
      зоны, определяемой границей. Когда граница не определяется, обра-
      ботанным образчиком оказывается весь экран.

                Черепичная обработка в Экранах 7,8,9,10

         Для этих улучшенных экранных режимов черепичный образчик пред-
      ставляет собой изобретение некоторого приема  хранения  и  интер-
      претации строки,  как  стека  8-битовых  блоков,  известных в со-
      вокупности как  бит-плоскость. В каждом экранном режиме, за  иск-
      лючением  режима  10, для которого требуется 2 бит-плоскости, для
      определения 1 черепичного  байта необходимо 4 бит-плоскости.
        Пример:
                 'вот как используются черепичные образчики
                 SCREEN 1:CLS
                 'определить  диагональный  образчик  для  диагональных
                 'линий
                 TIL$  = CHR$(&H40)+CHR$(&H40)+CHR$(&H10)+CHR$(&H10)+_
                 CHR$(4)+CHR$(4)+CHR$(1)+CHR$(1)
                 CIRCLE(100,100),50
                 PLANT(100,100),TIL$
                 'определить черепичный образчик-шахматная доска
                 TIL2$=CHR$(&HAA)+CHR$(&HAA)+CHR$(&H80)+CHR$(&H80)+_
                 CHR$(&H80)+CHR$(&H80)+CHR$(&H80)+CHR$(&H80)
                 CIRCLE (225,100),50
                 PLANT (225,100),TIL2$



                          Заявление PALETTE, PALETTE USING
                          --------------------------------
      Функция  PALETTE и PALETTE USING позволяет  вам  менять  один или
      -------                          более  цветов  в  политре (чтобы
      воспольэоваться  этими  заявлениями, у вас должен быть улучшенный
      графический Адаптер)
      
      Синтаксис   PALETTE (атрибут, цвет)
      ---------   PALETTE USING имя целого массива( индекс в массиве)
      
      Замечания        Аттрибутом представляется цвет в палитре. Цвет -
      ---------        это  фактически  отображаемый  цвет, которым за-
      мещается аттрибут в палитре.  Отображаемый  на вашем  экране цвет
      зависит  от  установки  экранного  режима  и  аппаратного дисплея
      (см.заявление SCREEN). Заявление PALETTE дает вам возможность ме-
      нять цвет текста или графики имеющейся в данный момент  на экране
      и  это  изменение  оказывает  также действие на любые последующие
      тексты  или  графику.  Это подручное средство, освобождающее  вас
      от необходимости перечерчивать текст или графику,  если  вы вдруг
      пожелаете изменить цвет (см. раздел примеров).
         PALETTE позволяет вам также манкировать число цветов в палитре
      более  15. Вы даже можете отображать текст как невидимый на фоне,
      а  затем  изменить  палитру  для цвета текста, чтобы сделать  его
      внезапно видимым.
         Если  в  заявлении PALETTE аргументы не специфицируются, пали-
      тра устанавливается в заранее определенные цвета умолчания.
      
         Заявление PALETTE USING позволяет вам модифицировать всю пали-
      тру в  целом  посредством  одного  заявленияя. Имя целого массива
      именует массив. При установке вашей палитры используйте индекс  в
      массиве  для  указания  первого  элемента массива ( в большинстве 
      случаев  вы будете  специфицировать  в качестве индекса в массиве 
      0). Добивайтесь уверенности в том, что размер вашего целого  мас-
      сива  достаточно велик для хранения всех шестнадцати  входов  па-
      литр  после индекса в массиве. Любой аттрибут в палитре находится
      в паре с цветом из целого массива. Использование в качестве  цве-
      тового  аргумента  -1  в  массивном  входе  приводит  к тому, что
      спаренный аттрибут не  изменяется: однако все другие  отрицатель-
      ные  значения  для цвета  незаконны. Ниже представлен список диа-
      пазонов аттрибутов и цветов  для различных экранных режимов и мо-
      ниторов:

               Таблица 5-1 Диапазоны цветов и аттрибутов

       ----------------------------------------------------------------
       Режим      Монитор         Диапазон аттрибутов   Диапазон цветов
       ----------------------------------------------------------------
       0          Моно/EGA                 0-15                0-2
                  Цветной/EGA              0-31                0-15
       1          Цветной/EGA              0-3                 0-15
       2          Цветной/EGA              0-1                 0-15
       7          Цветной/EGA              0-15                0-15
       8          Цветной/EGA              0-15                0-15
       9          EGA(64 K)                0-3                 0-15
                  EGA (>64K)               0-15                0-63
       10         MONO/EGA                 0-3                 0-8

       Моно - монохромный
       EGA - Улучшенный графический адаптер /ВМ
       ----------------------------------------------------------------

      Ограничения      Для заявлений  PALETTE и PALETTE USING требуется
      -----------      улучшенный  Графический Адаптер (EGA)

         Cм. также   COLOR
                     DRAW
                     SCREEN

      Пример:
                'ниже  показано  как  применить  PALETTE для  изменения
                'цвета графики (и текста) без перечеркивания или повто-
                'рного отображения графики.
                SCREEN 8    'установить 16-цветный режим ECA 640x200
                PALETTE    'установить цвета палитры EGA по умолчанию
                LINE (10,10) -(630,190),1,BF 'чертить рамку, заполнить
                'ее голубым
               DO
               FOR I% = 2 TO 14
               PALETTE 1, I%   'изменить цвет рамки с голубого
               DELAY,2      'задержать чтобы видеть изменения
               NEXT I%
               LOOP UNTIL INSTAT  'производятся изменения до нажатия клавиши
               END



                             Функция PEEK
                             ------------
      Функция  PEEK   возвращает  байт,  хранимый  в  специфицированной
      -------         ячейке  памяти
      
      Синтаксис   y=PEEK(отступ)
      ---------

      Замечания        Отступ - это  числовое  выражение от 0 до 65535,
      ---------        представляющее  16-битовый отступ в текущем сег-
      менте, установленном самым последним заявлением  DEF SEG. Возвра-
      щаемое значение может  быть  в  диапазоне от 0 до 255. PEEK и до-
      полняющее его  заявление  POKE  представляют собой низкоуровневые
      уходы  из  определяемого  в  Турбо-Бейсике  использования памяти.
      Одной из областей применения PEEK и  POKE  является  формирование
      массивов  байтов  для  такого  применения, где не трубуется  пол-
      ного, от -32768 до 32767 диапазона целых массивов.
          См. также  DEF SEG
                     POKE

      Пример:
               DIM массивов % (5) 'разместить массив из 6 целых
               DEF SEG =ПЕРСЕГ (массив%(0) )
               'используйте POKE, возбудить массив
               FOR I% = 0 TO 11
               POKE I%, &HFF
               NEXT I%
               'используйте PEEK, отобразить состояние массива
               FOR I% = 0 TO 11
               PRINT HEX$ (PEEK (I%) _
               NEXT I%
               END



                             Фуцнкция  PEN
                             -------------
      Функция   PEN    считывает состояние светового пера.
      -------
      Синтаксис   y=PEN (опция)
      ---------
      Замечания        Опция - это  числовая  опция,  которая управляет
      ---------        информацией, возвращаемой PEN, в соответствии со
      следующей таблицей:

       ----------------------------------------------------------------
         Опция                        Действие
       ----------------------------------------------------------------
          0    Перо вниз с момента последней проверки?
                           (-1= до; 0=нет)
          1    X-координаты, при которой последний раз задействовалось
               перо

          2    Y-координата, при которой последний раз задействовалось
               перо

          3    Текущее значение переключателя (-1=вниз; 0=вверх)

          4    Самая последняя X-координата

          5    Самая последняя Y-координата

          6    Ряд в котором последний раз задействовалось перо

          7    Колонка, в которой последний раз задействовалось
               перо (1-80)

          8    Самый последний ряд (1-24)

          9    Самая последняя колонка (1-80)
       ----------------------------------------------------------------

        Перед выполнением любого запроса функции PEN световое перо дол-
      жно быть  включено с помощью заявления PEN ON.

      Пример:  ON PEN GOSUB  Пераобработчик 'построить обработчик
               'событий
               PEN ON  'включить отслеживание событий
               PRINT  'нажмите для останова любую  клавишу
               WHILE NOT INSTAT
               WEND
               END

               Пераобработчик:
               FOR I% = 1 TO 9
               PRINT PEN (I%)
               NEXT I%
               RETURN


                             Заявление PEN
                             -------------
      Функция    PEN    управляет проверкой событий светового пера.
      -------
      Синтаксис   PEN (ON [OFF] STOP)
      ---------
      Замечания        Заявление PEN управляет проверкой событий свето-
      ---------        вого пера. Перед выполнением любых запросов фун-
      кций  пера  световое  перо должно быть включено с помощью PEN ON.
         Исполнение  PEN  ON также  обеспечивает доступ к  отслеживанию
      событий светового пера с помощью подпрограммы, указываемой в зая-
      влении ON PEN.
         PEN ON запрещает функцию PEN и включает проверку событий пера.
         PEN STOP  отключает отслеживание событий пера, но события пера
                   запоминаются, что  если позднее выдается PEN ON, не-
                   медленно происходит захват события в ловушку.
         См. также  ON PEN
      Пример: 
                'эта программа демонстрирует заявление PEN ON
                ON PEN GOSUB Пераобработчик
                'настроить обработчик событий
                 PEN ON   'включить отслеживание событий
                 PRINT 'нажмите для останова любую клавишу
                 WHILE NOT INSTAT
                 WEND
                 END
                 Пераобработчик
                 FOR I% = 1 TO 9
                 PRINT PEN (I%)
                 NEXT I%
                 RETURN


                             Функция PLAY
                             ------------
      
      Функция   PLAY   возвращает число нот, содержащихся в буфере фо-
      -------          новой музыки

      Синтаксис     y=PLAY (x)
      ---------
      
      Замечания        X- это пустой числовой аргумент. PLAY возвращает
      ---------        число нот, имеющееся  в  буфере фоновой музыки в
      ожидании исполнения.  Если  музыка должна исполняться на переднем
      фоне или не должна исполняться вовсе, PLAY возвращает 0.
         См. также  $SOUND
       
      Пример:
                  'играть до-ре-ми-фа и считать оставшиеся ноты
                  PLAY " MB CDEFG "
                  Вновь:
                  -----
                  n=PLAY (1) 'можно играть(что-нибудь)
                  PRINT n "нот осталось в буфере"
                  IF n=0 THEN PRINT "Буфер пуст": END
                   GOTO вновь


Яндекс цитирования