HELLORADIO.RU — интернет-магазин средств связи
EN FR DE CN JP

Описание применения KISS-драйвера для TFPCX

Прислал Талгат, за что ему огромное спасибо!!!

Три года назад я раздобыл kiss-драйвер TFPCX. Судя по названия программа писалась для IBM PC/XT машин. При запуске она становилась резидентной и при помощи команды можно было дозапустить терминальный вариант. Для того чтобы использовать TFPCX в своей программе я использовал прерывания, которыми пользуется терминальная часть TFPCX. Т.е. я написал как бы свою терминальную часть для TFPCX, но с вкраплениями нужного мне кода, работающего с внешними устройствами заказчика.Вектор прерывания - FE (hex). Правила работы с регистрами в описании.

ВВЕДЕНИЕ

TFPCX выполняет функцию KISS-драйвера TFPCR, входящего в комплект поставки программы HC и используется аналогичным образом. Программа может также использоваться и без HC в терминальном режиме, для чего содержит простую терминальную программу, что возможно интересно для медленных компьютеров. TFPCX не работает в ATARI ST.

ВНИМАНИЕ!

Если обнаружилось, что TFPCX в примененной конфигурации не в состоянии правильным образом декодировать дошедшие до PC без искажений пакеты АХ.25, нужно прекратить работу и использовать другое решение, чтобы не занимать бессмысленными передачами канал пакетной связи или другие частоты. Такое явление часто встречается при использовании медленных ХТ при высокой скорости передачи: правильная работа соответствует небольшому числу повторов при прямом наблюдении монитора.

Быстрый старт.

Для тех кто любит сам пробовать, имеет модем и хочет работать на УКВ со скоростью 1200 Бод, имеются следующие указания: - кто использует XT, должен все же читать дальше, потому что необходимо провести первую проверку, которую ЭВМ проведет достаточно быстро.

  • HC инсталируется так же, как и в TFPCR
  • SVL-модем подключается к COM-порту
  • TFPCX -PCOMn вызов (n - номер порта)
  • запустить HC
  • если есть проблемы надо читать дальше
  • командой TFPCX -U можно снова вывести TFPCX

    Принцип функционирования.

    TFPCX является TSR-программой, которая перед инициализацией HC должна быть вызвана и установлена резидентно в памяти. После завершения этого процесса происходит возвращение в DOS и может быть запущена следующая программа. Система ведет себя так, как если бы TNC был подсоединен, т. о. имеется возможность внешних соединений и запоминания всех принятых сообщений. Как только запускается Terminal-программа, на экран выводится принятый текст. Коммуникация с HC происходит через прерывание Software. Так как здесь, в принципе, не существует отличия от применения TFPCR, не нужно останавливаться в этом месте. TFPCX похожа на программу L2 системы 8com. HC здесь играет роль, применяемой там терминальной программы SCC.

    Непосредственно новое в отличие от TFPCR состоит в том, что TFPCX может напрямую запускать модем и без TNC принимать и передавать по протоколу AX.25. Здесь применяются другие методы нежели в 8Com, которые имеют как преимущества, так и недостатки. Так, TFPCX в нормальной IBM-XT с тактовой частотой 4.77 Мгц не может применяться с HC, но тактовой частоты 8 Мгц должно быть достаточно. Необходимый эталон времени создает Timmer-система (8253 канал 0) которая 3600 раз в секнду вырабатывает 8 прерываний, что уже выдвигает некоторые тебования к быстродействию PC. Большая проблема имеется в том, чтобы прерывания таймера не затягивались надолго, при этом возможен согласованный прием пакетов и посылаемые блоки не искажаются. Это может происходить, например, при обращении к диску. На АТ этой проблемы не возникает. Это было испытано не раз. Дальнейшие указания последуют ниже.

    Другие проблемы имеются в совместимости программ, которые равным способом используют Timmer-систему (например MS-Windows, какой-нибудь драйвер мыши, или также MS-QuickC 2.51. Эти программы не могут быть применены до тех пор, пока TFPCX не прекратит свою активность. Нарушения проявляются в неправильном ходе часов, максимальным замедлением работы компьютера или системных перепадов.

    TFPCX не полностью совместима с COM-портом, если последовательный контроллер используется только в качестве симплексного фиксатора Ввода-Вывода. Порт не должен быть прерываемым, поэтому LPT-порты можно использовать в качестве интерфейса; например SVL модем, который поставляет уровень 5В. Таким образом появляется новая надежда для людей, которым не везет с 8com!?

    Выбор модема.

    COM-PORT
    СИГНАЛ 25pin 9pin НАЗНАЧЕНИЕ
    DTR     20    4   передача данных +/-10 В
    RTS     4     7   PTT,высокий уровень активный -10В=RX, +10В=TX
    CTS     5     8   прием данных
    GND     7     5   земля
    LPT-PORT
    СИГНАЛ 25pin НАЗНАЧЕНИЕ
    DATA7   8    передача данных, TTL-уровень
    DATA8   9    PTT, высокий уровень активный, 0V=RX, 5V=TX
    BUSY   11    прием данных
    GND    18-25 земля

    AX.25.3

    HC может быть применен в двух видах работ (Terminal- и Hostmode), которые возможны у каждого TNC2. Отличие от нормального TNC состоит только в том, что обмен данных при последовательных портах безуспешен, особенно при Software-прерываниях с различными подфункциями. В добавление имеем все "навязанные хитростью" подфункции.

    В Termial-Modus TFPCX может работать с нормальными терминальными программами, которые конечно же должны использовать вышеназванные прерывания. Такие программы уже содержатся в TFPCX. Firmware в этом режиме предлагает ряд команд, которые вводятся ESC-кнопкой и выводятся кнопкой Enter.

    В добавление найдем короткое сопоставление для реализации команд. Команды A, E, H, K, QRES, Z и @K не существуют. Однако Terminal-Modus устарел и рассматривается только в случае необходимости. TFPCX компилируется для 10 каналов.

    Если кто-то хочет сделать возможной дуплексную работу, то это можно сделать (включив @D1), причем память всетаки нагружается все сильнее. По этой причине на ХТ лучше не отвлекаться. В симплексном обращении TFPCX является "глухой" если пердает сама.

    Вызов TFPCX.

    TFPCX активируется через следующие строки команд: TFPCX [-PCOMn | -PLPTn] [-Bnnn] [-Ixx] [-N] [-D] [Ffile]

  • [] - выбор данных
  • | - альтернативные данные
  • x - шестнадцатиричная цифра
  • n - децимальный номер

    Все параметры выбираются ортимально через -

    Базовый адрес порта берется из области данных BIOS, поэтому должен быть там зарегистрирован. Однако некоторые версии BIOS забывают это при COM3 и COM4.

    -Bnnnn скорость передачи в модеме (300, 1200, 2400, 4800, 9600)

    То, какая скорость передачи возможна (в бодах) на РС, зависит от быстродействия ВУ (см. таблицу в конце). 9600бод - это наверняка что-то сверхбольшое (возможна на 586). Если не работает с 1200бод, то применен не стандартный SVL-модем. При эксплуатации со скоростью 300 бод, системные часы отклоняются на 30 сек/час.

    -Ixx прерывание Software в коммуникации с HC (40-FF)

    В качестве прерывания применяется стандартное FE. Эта особенность нужна только если этот вектор применяется из других программ.

    -N сообщения программы подавляются

    Если передаваемый блок информации TFPCX при инициализации не удовлетворяет эстетическим требованиям, то он может подавляться. Но перед этим появляется сигнал сбоя.

    -D Test-Modus (Debug) отладка

    При каждом прерывании таймера происходит смена фронтов на входе динамика. При этом должен быть слышен звук около 3600Гц при скорости передачи информации около 1200 бод (Baudrate*3). Звук до какой-то степени должен быть чистым. Подтрескивание возникает, если прерывание замедляется. Один щелчек раздается, если запрашивается ВУ. Различить эти случаи крайне трудно, к тому же "основные шумы" не должны вредить функционированию. Но если совсем ничего не слышно - это, вообще говоря, скверно (исключение при 9600 бод, поскольку звук в 29кГц никто не может хорошо слышать).

    -Ffile установка параметров (эталонные указатели не применяются, при нехватке наименований массива данных действительно ценно для TFPCX.INI).

    Если пожелаете, этот файл можно прочитать при инициализации и передать посимвольно в терминальном режиме в Firmware для того, чтобы сделать возможным предварительную установку параметров. Это особенно интересно, когда программа стартует без HC и работает в терминальном режиме. Эталонные указатели могут достаться этой опции, потому что HC сама проводит инициализацию. Массив данных разыскивается в актуальном указателе, когда поступает неполная информация. Символ ^ превращается в переход с одного кода в другой и начинается с команды в терминальном режиме. Linefeeds отфильтровывается так, что файл может быть создан в обычном редакторе. Например:

    TFPCX.INI:
    ^F 6
    ^I MYCALL
    ^N 16
    ^O 2
    ^P 64
    ^R 1
    ^T 25
    ^U 1 Добро пожаловать в ???? - TFPCX v1.00 - HC offline
    ^W25

    Описание всех опциий в короткой форме вызывается командой TFPCX-H.Вызов TFPCX совсем без параметров производится следующим образом: вначале подается команда: TFPCX -PCOM1 -B1200 -IFE Для коротковолновой связи со скоростью 300 бод и модемом на LPT1 будет: TFPCX -PLPT1 -B300

    Установка TFPCX.

    (1) HC устанавливают так, что бы можно было работать с TFPCX. Особенно должны присутствовать следующие строки в HC.CFG:

    CFG=TNCS:1
    CFG=PORT0:5
    CFG=CHANS0:10

    Версии HC до 5.02 не должны использоваться, потому что интерфейс TFPCR там еще не существовал в современных формах. Работа при загрузке в расширенную память MS- или DR-DOS 5.0 не проверялась. Кто хочет попробовать, должен использовать CFG=PORT0:5H.

    Этот вариант исходит из того, что в дальнейшем с TFPCX TNC не используется. В работе Multi-TNC применение TFPCX не было испытано, но оно теоретически возможно. При этом TFPCX может применяться только для одного HF-порта, а также не должна одновременно загружаться с TFPCR. Для ясности можно напомнить, что невозможно сделать прерывания последовательных портов, на которых подвешены TNC, чтобы еще безупречно принимать и передавать пакеты АХ.25. Поэтому требуется В.У. с необходимым быстродействием (с каким именно не сказать, возможно такого несуществует).

    Все, что относится к TFPCR (TFPCR.COM, UNTFPC.EXE, AUTOKISS.CFJ) может быть стерто (оригинальная дискета РС конечно сохраняется). Вместо этого Datei TFPCX.EXE копируется в подобный директорий, в котором также находится HC.EXE.

    (2) Теперь модем подсоединяется к COM1-4 или к LPT1-4 и вызывается TFPCX. Если COM1 не используется, то порт должен быть задан через параметр (см. выше). После загрузки система должна экстремально замедляться (прежде всего при работе с диском) и перегружать PC с используемой скоростью передачи данных. Возможно в этом случае TFPCX может еще использоваться в терминальном режиме (см. выше), что выяснится только при запросе ЭВМ, в BayComе также не идет.

    (3) После запускается HC. Если отсутствует сообщение "TNC#0 - (TFPCR/FE) в Host-режиме", что-то неправильно сделано при инсталяции HC или не вызвана TFFPSX. Далее отыскивается QRJ в работе пакетного радио и включается монитор командами ESC MISUC. Если несмотря на хорошие сигналы пакеты не доходят, перезагрузите HC снова, удалите TFPSX с помощью TFPCX-U из памяти и запустите снова, причем необходимо дополнительно задать опцию -D. Теперь из внутреннего громкоговорителя РС должен слышаться тон 3600 Гц (при 1200 бодах). Если все тихо, то или РС имеет несовместимый таймер (тогда все дальнейшее бесполезно), или динамик просто не функционирует (что у меня было не раз). Теперь снова вызывается HC. Если раздается только один треск, значит ЭВМ не в состоянии достаточно быстро реагировать на прерывания таймера (во время вызова треск не вреден). Если же тон относительно чистый, то недостатки в модеме или в ВЧ технике.

    (4) Если монитор работает, можно пробовать соединение. При этом должно наблюдаться РТТ передатчика. Теперь собственно все должно функционировать.

    Удаление TFPCX из памяти.

    Прочитав команду TFPCX-U TFPCX удаляется из памяти. Здесь не нужна экстропрограмма для разгрузки. Прерывание связи происходит автоматически и ее не надо задавать.

    Терминальный режим.

    Командой TFPCX-T запускается простая терминальная программа, с которой можно работать и без HC. TFPCX заранее резидентно загружается (как описано выше). Следовательно программу нужно вызывать дважды с разными параметрами, для того чтобы достигнуть терминального режима. Выходят из терминальной программы с помощью Alt-X. С помощью ESK MN надо заранее выключить монитор, если он был активным, потому что он использует дополнительную память, и при возможном старте SP возникнут проблемы. Кто хочет работать только в терминальном режиме (на пример на медленном компьютере), может использовать опцию -F для установки стандартных параметров. При этом поможет следующий Bat-фаайл:

    TERM.BAT:
    @echo off
    cls
    tfpcx -n -f
    tfpcx -t
    tfpcx -n -u

    Эксперименты.

    В конце нужно еще немного рассказать об экспериментах с TFPCX и их результатах. Здесь обязательно будут проблемы. Начинающим рекомендуется довольно надежный 8Com тем более что он обслуживается HC. TFPCX рассчитана на потребителей пакетной связи, которые уже знакомы с HC и желают начать работу без TNC или просто не имеют возможности приобрести TNC, но все же хотят использовать на своей РС сервисную терминальную программу. Но может так случиться, что трудиться над программой бесполезно, если в имеющемся компьютере не хватает быстродействия. Грубое обозрение того, что можно ожидать от вашей РС, приведено в таблице. Указания "частично уважаемы" и поэтому не гарантируются.

    PC   XT XT 286 386
    MHz   5  8 12   20
    Бод  ST ST ST   ST
    300  ** ** **   **
    1200 /? ** **   **
    2400 // /? **   **
    4800 // // ??   **
    9600 // // //   ??
    S Работа с SP
    T Работа в Terminal-Mode
    * Работа возможна
    ? не гарантировано
    / Работа не возможна
    

    TFPCX проверяется при следующем обеспечении:

  • Компьютер:
    Carry-I            (AT/286 12 MHz)
    Amstrad PC 1512    (XT/8086 8 MHz)
    Tulip PC compact 2 (XT/V20 >9 MHz)
  • - SVL-Modem на COM1 или COM2
  • - 1200 Бод
  • - HC 5.02

    Уже видно, что ряд возможностей программы не проверялся. К этому относится другая скорость или порты модемов. Поэтому от неожиданностей никто не застрахован. В Amstrad PC может не загружаться мышиный драйвер, если используется TFPCX (кроме того неправильно идут часы), а Tulip PC имеет проблемы со своим динамиком (-D).

    Приложения.

    Функции прерывания TFPCX.

    AH = 1 Опрос, готов или нет символ к подаче
    Returns AX = 0 символ не готов, AX = 1 символ готов к подаче
    AH = 2Символьная подача только вызывается, если функция 1 сообщила, что символ готов.
    Returns AL символьный код
    AH = 3 передача символа Firmware

    Параметр: AL передаваемый символ

    Команды The Firmware v2.1c AX25.3

    КОМАНДА         ПАРАМЕТРЫ       ОПИСАНИЕ
    -------         ---------       ---------
    С        поз1 [поз2 ... поз9]   Маршрут (в канале 0: unproto)
    D                               Отсоединение
    F(4)            1...15          Время ожидания ответа (сек)
    G               [0]             В Host-режиме приносится информация
                    [1]             В Host-режиме приносится состояние
    I               позывной        Собственный позывной
    JHOST (0)       0               Вкючен терминальный режим
                    1               Включен Host-режим
    L               [0...10]        сообщение о состоянии каналов
    M (IU)          NIUSC+-         Мониторный режим работы
    N (10)          0...255         Количество попыток (0 - бескон.)
    O (4)           1...7           Количество неподтвержденных пакетов
    P (64)          0...255
    R (0)           0               Цифровой репитер выключен
                    1               Цифровой репитер включен
    S (1)           0..10           Номер канала (0 = unproto)
    T (30)          0...127         Время ожидания от PTT до передачи данных
    U (0)   0       [Текст]         Приветствие при соединении запрещено
            1       [Текст]         Приветствие при соединении передается
    V (2)           1               Протокол версии 1
                    2               Протокол версии 2
    W (10)          0...127         Временная задержка после окончания передачи
    X (1)           0               PTT для передачи запрещено
                    1               PTT для передачи свободно
    Y (10)          0...10          Максимальное количество соединений
    @B                              Показывает число свободных буферов
    @D (0)          0               Дуплексный режим выкл
                    1               Дуплексный режим вкл
    @S                              Текущая строка состояния
    @T2 (100)       0...255         Таймер Т2 (10мс)
    @T3 (18000)     0...32767       Таймет Т3 (10мс)
    @V (0)          0               Позывной номер выкл.
                    1               Позывной номер вкл.
    [] оптимальные параметры
    () установка по умолчанию

Партнеры