ZXNet эхоконференция «zxnet.soft»


тема: Modem driver



от: Eugene Palenock
кому: Vlad Sotnikov
дата: 30 May 2001

Привет, Vlad!

29 Май 01 02:34, Vlad Sotnikov -> Stanislav Udin:

VS> Hасколько мне известно, нет. У меня в далекой пеpспективе создание
VS> MMD-совместимого дpайвеpа для HAYES'а, но это тpебует изучение
VS> документации, и я даже пока не знаю, pеально ли это :(

PCшный модем гораздо более интеллектуальный чем ZX модемы.
Вообще написать можно, но большая часть точек входа
ммд-совместимого драйвера будет незадействована.
Соответственно нужна поддержка их "незадествованности" в
программе. А не проще ли тогда просто сделать в проге
работу с PCшным модемом ?

Там ведь не надо изобретать протоколы и т.п. - надо
только принимать и передавать байты в порт.

VS> А пpинцип pаботы HAYES модема никто не знает.

Ты - несомненно... Потому что там просто нет никакого
принципа который надо знать. Hадо звать только команды
конкретной модели модема (который в терминале набирать
надо для его настройки) и уметь работать с RS232 (модем
на низком уровне выглядит как порт RS232)

С уважением, Евгений.

от: Kirill Frolov
кому: Stanislav Udin
дата: 11 Jun 2001
Hемедленно нажми на RESET, Stanislav!

01 Jun 01 21:55, Stanislav Udin wrote to Eugene Palenock:

SU> А где можно ознакомиться с этими точками входа в ммд-совместимый
SU> драйвер?


Драйвер модема/часов.
Драйвер размещается с адреса #C000 (49152)
до адреса #EFFF (61439). Максимальный раз-
мер драйвера 12Кб (12288 байт). Область па-
мяти #F000...#FFFF используется системой
под буфера.
Драйвер не должен изменять регистры IX, IY,
SP, изменять тип прерывания

Входные точки драйвера:

D_INSTAL EQU #C000
УСТАОВКА ДРАЙВЕРА
при входе в [HL] - адрес буфера модема.
При возврате в буфер модема записывается в
ASCII форме значения скоростей, на каждую
скорость отводится по 5 байт, максимальное
количество скоростей - 8, описание заканчива-
ется кодом #00.
В регистровой паре [HL] возвращается адрес
обработки п/п прерывания. Если появится не-
маскируемое прерывание, то произойдет пере-
ход на данный адрес. Подпрограмма обработки
прерывания не должна изменять значение ре-
гистров за исключением [A], [BC] и [HL]
Если при вызове этой функции флаг CY=1,
то происходит тестовый вызов драйвера. И
драйвер модема может не производить ин-
сталляцию и не возвращать данные. Это мо-
жет быть полезно в том случае если драйвер
модема упакован. Вначале вызывается "УС-
ТАОВКА" при установленном флаге CY, для
того чтобы драйвер распаковался, а затем
производится настоящая установка, при CY=0.

D_COPYR EQU #C003
ПОЛУЧЕИЕ ИФОРМАЦИИ О ДРАЙВЕРЕ.
при возврате в буфер модема записывается
название драйвера (до 43-х символов), закан-
чивается кодом #00

D_RD_STAT EQU #C006
ЧТЕИЕ СТАТУСА ЛИИИ/ДРАЙВЕРА
При входе в [A] цвет бордюра
При возврате в [A] - данные для порта #FE
Это в основном нужно для VICOMM-модема.
Если модем не "трогает" порт #FE, то значение
регистра [A] не должно изменяться!
При возврате в регистре [B]:
bit0 статус линии: "0" - модем не занимает ли-
нию, "1" - модем занимает линию
bit3 наличие тонового набора
bit4 нужно ли выключать TUBRO-режим при
вызове драйвера
bit5 имеется управление линией, т.е. модем
может "снимать" и "вешать" трубку.
bit6 наличие часов в драйвере
bit7 наличие таймера в драйвере

D_WAIT_INS EQU #C009
УСТАОВКИ ПЕРЕД ОПРОСОМ ЛИИИ
(ЕБОЛЬШАЯ ИСТАЛЯЦИЯ)
Эта функция не должна изменять регистры!
При входе в [A] громкость вывода звука линии.
Это значение используется при выполнении
функций D_WAIT_LN и D_WAIT_BLC. Если
[A]=0, то звук отсутствует, если не равно ну-
лю, то состояние телефонной линии должно
выводиться, например, на музыкальный со-
процессор с указанной громкостью.

D_WAIT_LN EQU #C00C
ОПРОС ЛИИИ
при возврате
CY=1: данные не приняты
[B] время выполнения опроса линии
[C] максимальное время выполнения
опроса линии

CY=0
[A]=#01: принят блок
#02: обнаружен сигнал "занято"
#03: обнаружен "вызов"

D_WAIT_BLC EQU #C00F
ДОЛГОЕ ОЖИДАИЕ
при возврате
CY=1 нет блока
[BC] длина
[D] скорость (#80 неопределенна)

D_TRANSMIT EQU #C012
Передать блок данных из буфера модема
со скоростью, номер которой в [A],
[BC] - длина блока

D_ON_LINE EQU #C015
СЯТЬ ТРУБКУ

D_OFF_LINE EQU #C018
ПОЛОЖИТЬ ТРУБКУ

D_CALL EQU #C01B
АБРАТЬ ОМЕР, ТРУБКА УЖЕ СЯТА,
при входе
[HL] - набираемый номера
[A] - способ набора: 0 pulse, 1 tone
[B] - период импульса (60+40)ms станд. 100
[C] - межцифровая пауза ms/10

при возврате:
CY=0 номер удачно набран
CY=1 ошибка, код ошибки в [A]:
#00 ошибка набора
#01 нет длинного гудка
#02 выполнение прервано

D_AON EQU #C01E
ВЫЗЫВАЕТСЯ ПРИ ОБАРУЖЕИИ ЗВОКА.
СИМАЕТСЯ ТРУБКА + ОПРЕДЕЛЕИЕ О-
МЕРА
при входе:
[A] число запросов
[B] пауза перед запросом /2 ms
[C] кол-во цифр
[D] чувствительность к ответу АТС
[E] чувствительность линии
при возврате в MOD_BUFF определившийся
номер телефона в ASCII-виде, в конце код #00.

SET_CON_A EQU #C021
АКТИВАЯ УСТАОВКА СОЕДИЕИЯ (ПЕ-
РЕДАЧА)

SET_CON_P EQU #C024
ПАСИВАЯ УСТАОВКА СОЕДИЕИЯ (ПРИЕМ)

В MOD_BUFF возвращается текстовое сооб-
щение о соединении (CARRIER/SPEED), в
конце код #00.
В [A] установленная скорость, или #80, если
скорость неопределенна
CY=1 соединение установить не удалось

D_SET_TIME EQU #C027
УСТАОВИТЬ ВРЕМЯ
при входе
[H] - ГГ [C] - ММ
[D] - ДД [B] - ЧЧ
[L] - ММ [E] - СС
[A] - ДЕЬ ЕДЕЛИ
при возврате
CY=1 ОШИБКА

D_RD_TIME EQU #C02A
СЧИТАТЬ ВРЕМЯ
при возврате
[H] - ГГ [C] - ММ
[D] - ДД [B] - ЧЧ
[L] - ММ [E] - СС
[A] - ДЕЬ ЕДЕЛИ
CY=1 ОШИБКА

D_OFF_DRV EQU #C02D
ВЫКЛЮЧЕИЕ ДРАЙВЕРА
Эта п/п вызывается в том случае, когда
система планирует длительное время не
обращаться к драйверу.
апример при выполнении коменд PAUSE,
COPY, MOVE. А так же при запуске файла
на выполнение.
Вызов любой п/п драйвера - его обратное
включение.


D_SET_ALR EQU #C030
УСТАОВИТЬ ТАЙМЕР А [A] МИУТ

D_ADD_ALR EQU #C033
ДОБАВИТЬ К ТАЙМЕРУ [A] МИУТ

D_RD_ALR EQU #C036
ВРЕМЯ ИСТЕКЛО?
при возврате
CY=1 - время истекло
CY=0 - ещё осталось время.
[A] - сколько минут осталось






Драйвер добавочного диска

Адрес загрузки #6800,
длина драйвера 256 байт

Драйвер не должен изменять
тип и состояние прерывания и
значения регистров
IX, IY, SP, HL




Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Похожие статьи:
Gameland - Игра Шестнашки.
Вступление - содержание номера.
Железо - графика на ZX Spectrum, какие перспективы?
Что-где-почем - Hачну с того, что мне пpислал на этот pаз VEL.
Speccy.pl Party 2018.1 - invitation and rules

В этот день...   25 апреля