.
.
...для DOS
...для WINDOWS 3.1, 95, 98
...для LINUX

Описание продукции
back
HOME
.

ДРАЙВЕРЫ ДЛЯ DOS

Программирование DMX PC-карт для DOS особенно легко, т.к. здесь во всех языках программирования возможен на прямую I/O-доступ. Кроме того, написанные таким образом программы, по всем параметрам быстрее.

За полноту и работу предлагаемых программ, примеров и драйверов наша фирма ответственности не несёт. Мы оставляем за собой право на внесение различных изменений и дополнений в связи с техническим прогрессом. Эта страница постоянно обновляется и дополняется.

Последняя актуализация: 1.9.1999.


Общее описание Interface-карты Вы можете найти в разделе HARDWARE.

Под DOS область E/A Вашего компьютера непосредственно не реагирует. Каждый язык программирования имеет для этого определённую комманду; при этом специальный драйвер абсолютно не обязателен. Тем не менее написание драйвера для работы с картой может иметь определённое значение. Следующие примеры продемонстрируют это.


BASIC   

Следующий пример действует для карты 1512B-LC. Для других карт необходимо будет внести изменения.
Опознание карты     DECLARE SUB dmxinit ()
Ищет карту в компьютере и и присваивает адрес. Если карта не будет найдена, то программа заканчивает свою работу. В противном случае загружается операционная система карты, выставляются начальные значения и обнуляется память карты.
  cardadr = 0
  FOR i = 0 TO 3
    OUT &H100 + &H20 * i, 0
    OUT &H101 + &H20 * i, 0
    OUT &H102 + &H20 * i, &HAA
  NEXT i

  FOR i = 0 TO 3
    OUT &H100 + &H20 * i, 0
    OUT &H101 + &H20 * i, 0
    porttest = INP(&H102 + &H20 * i)
    IF porttest = &HAA THEN cardadr = (&H100 + &H20 * i)
  NEXT i

  IF cardadr = 0 THEN PRINT " Карта не найдена!": END
  PRINT "---------------------------"
  PRINT "Адрес карты: "; cardadr
  PRINT "---------------------------"

  ' *******************************************
  ' переносит программу-операционную систему для
  ' карты, которую прочитывает из имени файла
  ' SLHDMX12.BIN.
  ' *******************************************
  OPEN "SLHDMX12.BIN" FOR INPUT AS #1
  i = 0
  WHILE NOT EOF(1)                              ' читает/переносит 
    x$ = INPUT$(1, #1)				' операционная система
    OUT cardadr, i AND 255                      ' адрес lowbyte
    OUT cardadr + 1, INT(i / 256)               ' адрес highbyte
    OUT cardadr + 2, ASC(x$)
    i = i + 1
  WEND
  PRINT "--------------------------------------------"
  PRINT "Операционная система "; i; " Байты загрузить "
  PRINT "--------------------------------------------"

  FOR i = 0 TO 8                                ' переносит параметры
    OUT cardadr, (i + &H7F0) AND 255            ' адрес lowbyte
    OUT cardadr + 1, INT((i + &H7F0) / 256)     ' адрес highbyte
    OUT cardadr + 2, dmxdef(i)                  'величина файла
  NEXT i

  FOR i = &H0 TO &HFF                           ' Устанавливает все каналы = 0
    OUT cardadr, (i + &H400) AND 255            ' адрес lowbyte
    OUT cardadr + 1, INT((i + &H400) / 256)     ' адрес highbyte
    OUT cardadr + 2, 0                          'величини файла
    OUT cardadr, (i + &H500) AND 255            ' адрес lowbyte
    OUT cardadr + 1, INT((i + &H500) / 256)     ' адрес highbyte
    OUT cardadr + 2, 0                          ' величина файла
  NEXT i

END SUB

Карту стартовать     DECLARE SUB dmxstart ()
Этот пример действует только для карты 1512B-LC. Для других карты необходимо произвести некоторые изменения.
dummy = INP(cardadr + 3)

END SUB

Карту остановить     DECLARE SUB dmxstop ()
Этот пример действует только для карты 1512B-LC. Для других карты необходимо произвести некоторые изменения.
OUT cardadr, 0

END SUB

В карту записать     DECLARE SUB dmxtrans (kanal, value)
Этот пример действует только для карты 1512B-LC. Для других карты необходимо произвести некоторые изменения.
  IF kanal < 1 OR kanal > 512 THEN EXIT SUB         ' Ошибка!
  IF value > 255 THEN EXIT SUB                      ' Ошибка!

  OUT cardadr, (&H400 + kanal - 1) AND 255          ' адрес lowbyte
  OUT cardadr + 1, INT((&H400 + kanal - 1) / 256)   ' адрес highbyte
  OUT cardadr + 2, value                            ' Величинифайла
END SUB