ZX-News #26
03 апреля 1997
  Железо  
  Модем  

Железо - Описание XTR-модема.

<b>Железо</b> - Описание XTR-модема.
            ----- ЖЕЛЕЗО -----

  Изначально мы планировали усовершенство-
вать VICOMM и сделать  его максимально де-
шевым. Увы, полумеры ни к чему не привели,
изначальная ущербность VICOMMа не позволи-
ла реализовать все задумки, а именно: воз-
можность  автоматического (без кнопки) за-
нятия  линии, контроля звонка  и занятости
линии. Все это дает невиданные  ранее воз-
можности, как-то: импульсный  и  тональный
набор номера, возможность автодозвона, оп-
ределение номера, набираемого с параллель-
ного  телефона, автоматическое определение
номера звонящего абонента (АОН), а в режи-
ме модема улучшеный сервис и повышеное ка-
чество приема/передачи.

  Я  не даром делаю упор на побочную функ-
цию  модема - АОН, т.к. считаю  АОН безус-
ловно полезной и нужной функцией в модеме.

  Посему  программная совместимость с  VI-
COMMом была утрачена, но не полностью.

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

  Модем  стал  внутренним  (это удешевляет
конструкцию) - он втыкается в слот SCORPI-
ON/KAY и его подключение не сопровождается
разогревом паяльника. Подключение к другим
SPECTRUM-совместимым  машинам сопроводится
включением  паяльника  и применением оного
согласно инструкции.

  Модем  имеет  гальваническую  развязку с
линией (пробивное напряжение 1.5 Kv). Раз-
вязка  сделана  посредством оптронов, а не
трансформатора, как в  VICOMMе, что опять-
таки  удешевляет  конструкцию и снижает ее
габариты.

  Соблюдены  все  стандарты  на  оконечное
устройство  телефонной сети  (максимальная
утечка 250 мкА, максимальное  напряжение -
220 В, максимальный ток - 100 мА).

  Когда  компьютер выключен, когда модемом
не пользуются, а так же по нажатию  RESET,
модем  отключается от линии и не оказывает
на нее никакого влияния.

  Сигнальная  часть модема имеет частотную
полосу  на передачу  более 20 Кгц, на при-
ем - более 10 Кгц, что более чем достаточ-
но  для  обмена на  3200 бод (если линия и
станция позволят). Максимальная испытанная
скорость - 3900 бод, результаты  обнадежи-
вают.

  Немаловажная  деталь: реализована  аппа-
ратная  поддержка  обмена с модемом в лице
стробирования  процесса выбираемой кварцо-
ванной частотой посредством сигнала  WAIT.
Идея такая - программа написана под такто-
вую  частоту  CPU  SPECCY не ниже, скажем,
3.2 Мгц, а все  машины с большей  частотой
подтормаживаются  до  нужной. К сожалению,
есть ограничение - не более 7.0 Мгц (типо-
вой ТУРБО-режим).

  Это очень удобно - качество связи не за-
висит от времянки машины и не надо пользо-
ваться  кнопкой ТУРБО, все и так работает,
включая CONNECT SCORPION-PENTAGON.

  Возможна передача в линию аналогого сиг-
нала  с квантованием по 16-ти уровням пос-
редством ШИМ-модуляции  с частотой дискре-
тизации  до 23 Кгц  (голосовые возможности
АОН РУСЬ-16  и выше, а также  DIGITAL STU-
DIO ).

  Конструктивно усройство представляет со-
бой печатную плату размером 75*70 мм и со-
держит  разъем в виде слота SCORPION/KAY и
разъема телефонной линии. Потребление тока
от источника питания  SPECCY около 100 мА.
+12 В не требуется.

             ----- SOFT -----

  Пока модем в производстве, мы адаптируем
существующие терминальные программы, а так
же пишем новые. Уже переделан  MODEM 3.6 и
написана  программа  АОН.

  Переделаный MODEM 3.6 может быть исполь-
зован для связи XTR-VICOMM.

  Данный  проект  поддержан  OMEGA GROUP и
программа  Macro-Modem  будет адаптирована
под XTR.

  Мы уверены, что  XTR полностью  вытеснит
все  VICOMMы  и станет стандартом на плат-
форме  ZX-SPECTRUM.

          ----- ПОЖЕЛАНИЯ -----

  Мы знаем, что на сегодня, кроме Питера и
Москвы, нигде  модемов  нет и  в помине. А
посему предлагаем - попробуйте сей продукт
и в вашем регионе, вы не пожалеете.

       ----- ПРОГРАММИРОВАНИЕ -----

  Для  любопытных  пользователей  сообщаем
необходимый  минимум информации. Общение с
модемом происходит через единственный порт
с адресом  #B7 (183).


 IN A,(#B7), если линия не занята модемом

 Bit7 Bit0
  0    0   линия не подключена к модему
  0    1   снята трубка паралл. аппарата
  1    0   звонок ( возможны глюки )
  1    1   линия свободна


  IN A,(#B7), если линия занята модемом

 Bit7  всегда 0
 Bit0  через него идут принимаемые данные


  OUT (#B7),A

 Bit0  при занятой линии - передаваемые
       данные, при приеме д.б. =1
       при освобожденной линии неактуален
 Bit1  1-занять линию
       0-освободить линию

 Bit4  биты определяют время, до которого
 Bit5  аппаратно растянется интервал вре-
 Bit7  мени между двумя соседними коман-
 Bit6  дами IN A,(#B7) или OUT (#B7),A

 Bit7-Bit4
 #00  время .000002*16 сек
 #10  время .000002*15 сек
 ...
 #E0  время .000002*1  сек
 #F0  асинхронный режим, NO WAIT

  Для случая #F0  ничего не растягивается,
все выполняется, как для порта #FE в режи-
ме эмуляции VICOMM.

  Для чего нужны биты 7-4?

          пример:

        LD A,#?0     *
        OUT (#B7),A  *
        IN A,(#B7)   !
        POP AF
        IN A,(#B7)   !

без  аппаратной поддежки для команд, отме-
ченых знаком !, период выполненя составит:

                   тактов      секунд

  PENTAGON         11+10=21   .000006
  TURBO PENTAGON   11+10=21*  .000004 !
  SCORPION         12+10=22   .0000063
  TURBO SCORPION   12+10=22*  .000004 !
  KAY              12+10=22   .0000063
  TURBO KAY        12+12=24   .0000034

  * плюсуется WAIT
  ! приблизително

  Для  случая  XTR  период  для всех машин
уравнивается,  увеличиваясь  (!) до значе-
ния, установленого в битах 7-4 (кроме зна-
чения #F0).

  То же спрведливо для  OUT (#B7),A  и для
любых комбинаций IN/OUT с портом #B7.

Примечание_1: естественно, программа долж-
на  быть  писана  под худшую машину, чтобы
время исполнения команд на этой машине бы-
ло  меньше, чем установленое время, до ко-
торого  все растягивается (иначе это будет
сжатие!).

примечание_2:  период  без растягивания не
должен быть менее .00000229 сек, (8 тактов
неTURBO  PENTAGONа, 16 тактов TURBO PENTA-
GONа), иначе растягивания не произойдет.

       Пример паузы в .002 секунды:

W002    XOR A
        OUT (#B7),A ; период 32 мкС
        LD B,62
W002_1  IN A,(#B7)  ; 62*.000032=.001984
        DJNZ W002_1
        ...

  На любой машине это будет  .002 сек, не-
зависимо от TURBO/неTURBO.

        Примеры программирования:

  освободить линию  OUT (#B7),#F0
  занять линию      OUT (#B7),#F3

   Набор номера (WAIT ... в секундах):

ADRNUM  DB "1234567"

DIAL    OUT (#B7),#00 ; сброс линии
        WAIT 0.5
        OUT (#B7),#02 ; занять линию
        LD HL,ADRNUM
        LD C,7
DIAL7   WAIT 0.5
        LD A,(HL)
        SUB #30
        JR NZ,DIAL7_0
        LD A,10       ; для нуля-десять
DIAL7_0 LD B,A
        INC HL
        PUSH HL
        PUSH BC
        CALL DIALN    ; набор цифры
        POP BC
        POP HL
        DEC C
        JR NZ,DIAL7
        WAIT 0.5
        OUT (#B7),#03
        RET

DIALN   OUT (#B7),#00
        WAIT .06
        OUT (#B7),#02
        WAIT .04
        DJNZ DIALN1
        RET

    Передача данных (принцип VICOMM):

        OUT (#B7),#F2
        WAIT
        OUT (#B7),#F3
        WAIT
        повторять по алгоритму

             Ожидание звонка:

WTCALL  LD DE,#8180
        XOR A
        OUT (#B7),A
WTCL0   LD BC,#FF00
WTCL1   WAIT .002
        IN A,(#B7)
        AND D
        CP E
        JR NZ,WTCL2
        INC C
WTCL2   DJNZ WTCL1
        LD A,C
        CP 30       ; антиглюк
        JR C,WTCL0  ; нет звонка
WTCL3   LD B,0      ; ожидаем конец
WTCL4   WAIT .002   ; звонка
        IN A,(#B7)
        AND D
        CP E
        JR Z,WTCL3
        DJNZ WTCL4
; можно занимать линию
        RET

  !  не рекомендуется занимать линию в мо-
мент  звонка  (как-никак  120  вольт !!!),
нужно дождаться паузы между звонками (ска-
занное  справедливо  для любого оконечного
устройства телефонной линии).

        __________________________
           ────────────────────


                 



Другие статьи номера:

General Sound - О процессе адаптации фирменных игрушек под General Sound - первые результаты (Xecutor, Target Renegade). Руководство по программированию, краткое описание, технические характеристики, система команд.

Глюки - STS 5.1 новые глюки.

Железо - Описание XTR-модема.

Лит.страничка - Из серии "Необъятная вселенная".

Новости - XTR-modem новая разработка от X-Trade.

Обмен опытом - IBM-PC Keyboard на ZX Spectrum...

От редакции - В Питер пришла весна.

Реклама - Реклама и объявления ...


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

Похожие статьи:
Форум - Интервью с Николаем Носковым и Иваном Макарченко, создателями фирмы "ПЕТЕРС".
Игры - Прохождение игры Times of Lore.
Part three - Вы мне должны деньги! - Извините, но это уже по моему усмотрению...
Программистам - Перехват IM 1
Computer clubs of Saint-Petersburg - history of russian computers clubs

В этот день...   21 ноября