Turbo Basic 1.1. Руководство пользователя



   http://www.basicpsychology.ru/        

Turbo Basic 1.1. Руководство пользователя - стр. 326


Запрос на прерывание по-
  мещается в наиболее значимый байт регистра AX (AH),  а  дополни-
  тельные,  при необходимости, размещаются в других регистрах. DOS
  предоставляет множество полезных функций, доступ к которым может
  быть осуществлен с помощью описанного выше способа.
       В качестве примера рассмотрим функцию FNFreeSpace,  опреде-
  ляющую количество пустого дискового пространства.
       DEF FNFreeSPACE (drive%) 'Функция DOS 36H возвращает число
                                'свободных кластеров на выбранном
                                'устройстве: 0=устройство по умолчанию,
                                '1=А,2=В и т.д.
       REG 4,drive%
       REG 1,&H3600
       CALL INTERRUPT &H21
       'своб. пространство = доступные кластеры * байт/сектор *
       'сектор/кластер = BC*CX*AX
       FNFreeSpace = CSNG(REG(2))*REG(3)*REG(1)
       END DEF
      
       Определенная  в  одном месте программы, функция FNFreeSpace
  может быть вызвана в любом другом, также  как  и  все  остальные
  функции.
                Использование CALL вместе с INLINE
                ----------------------------------
       Встроенные  процедуры  на ассмеблере и обычные процедуры на
  ТУРБО БЕЙСИКЕ используют одну и ту же вызывающую  последователь-
  ность. Изменяется определение процедуры SUB при задании программ
  на  языке ассмеблера. Встроенные процедуры - наиболее мощный ре-
  жим использования ассмеблера в ТУРБО БЕЙСИКЕ.
       Синтаксис:
       CALL <имя процедуры> [(список параметров)]
      
       Синтаксис:
       SUB <имя процедуры> INLINE
         $INLINE <список-байтов>
         $INLINE <имя-файла-COM>
       END SUB
      
       Может  быть  задано  произвольное   количество   операторов
  $INLINE  в  любом порядке. Единственное ограничение - количество
  файлов COM в одной процедуре не должно быть больше 16.
       Список-байтов состоит из констант или  выражений,  значения
  которых находятся в диапазоне от 0 до 255, разделенных запятыми.



Содержание  Назад  Вперед