Breeze #09
04 июля 1997

Железо - XTR Modem: описание и программирование.

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


         М О Д Е М

(c) Алексей Михайлов

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

  Как Координатора, как Си-
сОпа, как просто синклерис-
та, меня не может оставить 
равнодушным  тот  факт, что
благодаря  развитию сети
продолжает развиваться и
Спектрум, и XTR-modem - тому
живое подтверждение. Разра-
ботчики  аппаратного  обес-
печения, также как  и  прог-
раммного, всегда зависили от
потребителей, и сейчас они
видят, что сеть растет, что
старый добрый Викомм по раз-
ным причинам уже не устраи-
вает людей.

  Многие не могут звонить на
дневные станции потому что
на работе,а вечером, в самое
удобное время, порой бывает 
просто не пробиться - неко-
торые СисОпы уже  вынуждены
прекращать регистрацию новых
пользователей из-за большого
количества поинтов и юзеров,
которые порой устраивают 
настоящий PILE UP.   Ну   а
ночью  хочется спать... Да и
максимальная скорость виком-
мки - 2400 бод: это  не  так
уж и много, по крайней мере,
хотелось бы больше.

  И вот, пришло время ска-
зать  НЕТ  примитивному   
трансформатору,   который  
стоит просто громадную сум-
му из-за того, что его
производит  в городе только 
один человек - Сергей Усов,
являющийся в некоторой сте-
пени монополистом. Ладно бы
такие  деньги платить  за
нормальный модем, но не за 
Викомм ведь!

  В двух словах о том, что
может новый модем.

  Во-первых, поднимать/опус-
кать трубку без "прибамба-
са", во-вторых, определять
номер звонящего, дозвани-
ваться  автоматически по
любому  номеру  (нескольким
номерам), что предоставляет
уникальные  возможности для
ббсного софта и для простых
поинтов: включили  вечером 
комп, легли спать, модем сам
дозвонился  до bbs'ки, слил 
почту и файлы, отправил вашу
почту, а вы  с утреца (или
после  работы)  спокойно и
без всякой нервотрепки сиди-
те и читаете почту- не прав-
да-ли, просто здорово? Не-
плохая скорость - 3200  обе-
щают  даже на плохих линиях,
а на хороших - гораздо выше,
простота в подключении - 
воткнул в системный разъем, 
и все! Стоить  новый модем 
будет не дороже Викомма. 
Поэтому я считаю, что рано  
или поздно вся  сеть  все 
равно  перейдет на XTR-mo-
dem'ы, фактически, дело 
только в софте...

Ну а теперь - слово авторам.

 ──────────────────────────

(c)  X-TRADE GROUP

         XTR-modem

  Вот и настало время пора-
довать мир SPECCY - XTR сде-
лан, отлажен  и пущен в 
производство. Анонс в ZF#5
имел целью информацию  о на-
добности сего продукта на 
рынке. 
  Удовлетворяя  всеобщий ин-
терес, расскажу вкратце о 
концепции модема.

      ----- ЖЕЛЕЗО -----

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

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

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

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

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

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

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

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

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

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

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

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

  Конструктивно усройство 
представляет собой печатную 
плату размером 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
  TURBO PENTAGON   11+10=21*
  SCORPION         12+10=22
  TURBO SCORPION   12+10=22*
  KAY              12+10=22
  TURBO KAY        12+12=24

                    секунд

  PENTAGON         .000006
  TURBO PENTAGON   .000004 !
  SCORPION         .0000063
  TURBO SCORPION   .000004 !
  KAY              .0000063
  TURBO KAY        .0000034

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

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

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

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

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

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

W002   XOR A
       OUT (#B7),A ; период
                      32 мкС
       LD B,62
W0021  IN A,(#B7)  ; 

          62*.000032=.001984

       DJNZ W0021
       ...

  На любой машине это будет
.002 сек, независимо от TUR-
BO/не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

Передача данных (принцип VI-
COMM):

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

____________________________
   ──────────────────────



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

От авторов - duke soft vs duke soft: кто был первым?

Новости - интервью с хаккером из Одессы: Везне Валерий/VNV.

Анонс - новая игра из Питер - MORTAL KOMBAT.

Обо всем - Душевные терзания на ниве СПЕКТРУМА - "У Саши IBM, и у Васи IBM, я тоже хочу IBM"...

org 30000 - выдержки из комп. сети AmigaNet: Amiga для начинающих.

Железо - XTR Modem: описание и программирование.

Реклама - Фирма 'SIRIUS SOFT' предлагает вашему вниманию широкий выбор программного обеспечения для ZX-Spectrum.


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

Похожие статьи:
Хроника чекистов - хуйня чистой воды.
Анекдоты - приколы, афоризмы, стеб.
Нововсти - О новых программах от белоруских программистов.

В этот день...   21 июля