Insanity #08
19 января 2001
  Железо  
  Profi  

Hard - Profi - Подключение к Profi различной периферии.

<b>Hard</b> - Profi - Подключение к Profi различной периферии.
          ...Подключение к Profi различной периферии...


    $% Stingrey

    Одним из старейших отечественных клонов Spectrum-совместимых
компьютеров  является Profi. Несмотря на свою распространенность
(по  некоторым  данным Profi является вторым по количеству среди
серийно   выпускавшихся   "больших"   Spectrum'ов)   и  качеству
технического  исполнения  (многие  из  идей  и  разработок фирмы
CONDOR  впоследствии  копировались  другими производителями), по
ряду причин оказался обделен вниманием в спектрумовских СМИ.

    В   то   же  время,  как  показывает  практика,  сейчас  еще
достаточно   большое   количество   Profi  находится  в  рабочем
состоянии  (в  отличии от некоторых других клонов), и пользуется
заслуженной популярностью среди реальных спектрумистов.

    Есть  и  не  мало пользователей, купивших Profi с рук, и без
какой   либо   документации,  и  по  этой  причине  испытывающих
определенные затруднения не только по полноценному использованию
этого компьютера, но и при подключении всякой периферии. Поэтому
эта статья, в первую очередь, предназначена для них.

    Моему  Profi  уже 7 лет (он у меня с ноября 1993 года), и он
ни   разу   не   дал   мне  повода  разочароваться  в  нем.  Его
конфигурация:

    -  Profi+  ver.4.15,  Concurrent  BIOS,  512KB  RAM,  7 MHz,
standart  pallete, 3 slots ZX-BUS/NEMO-BUS, General Sound-512KB,
5'25"/3'5"  FDD'S,  YM-2149F,  PC-keyboard  и  так далее... (тип
принтера,  аудиосистемы,  и  марка  телевизора  наверное  не так
интересны).

    Как   вы,   должно   быть  заметили,  в  моей  конфигурации,
присутствует такое замечательное устройство как - General Sound,
которое  находится в моем компьютере с 1998 года. Да, в то время
как  народ  дисскутировал  о возможности подключении GS к Profi,
данный девайс уже присутствовал в конфигурации моего компьютера.
Сначала  GS был подключен к системному разъему просто проводами,
а  впоследствии  я  собрал  и  установил шинный формирователь со
слотами по схеме из журнала "Spectrum EXPERT".

    Что  можно  сказать  по поводу подключения к Profi различной
периферии вообще и GS в частности?..

    Во-первых,  вряд  ли  стоит  рассчитывать на появление новых
устройств  предназначенных  исключительно  для  Profi, и поэтому
нужно ориентироваться на питерский стандарт шины ZX-BUS, - это и
рационально   (если   учитывать  то  количество  уже  выпущенных
устройств,  а  сколько  еще  разрабатывается...),  и  оптимально
технически  (после  некоторых  усилий,  подключение  любых новых
устройств, будет сводиться к простому втыканию их в слот).

    Теперь   о   возможных  конфликтах  с  фирменной  периферией
Profi...  Как  ни парадоксально, но в лучшем положении находятся
владельцы  старших  версий компьютера (3-й, 4-й), так как у них,
как   правило,   отсутствует   какая-либо   "лишняя"   периферия
(COM-порт,  часы...). И так как на Profi весьма грамотно сделана
дешифрация  портов  (стоя  аплодируем  фирме  CONDOR :), то (при
условии  исправности  как  самого компьютера, так и периферийных
устройств) подключение General Sound, либо какого-нибудь другого
устройства не должно вызвать никаких проблем.

    В   простейшем   случае   (если  ограничиться  подключением,
например,  только  GS) все сигналы беруться с системного разъема
(распайку  системных  разъемов  см. в конце материала) с помощью
проводов  (на  Profi  хоть  и отсутствуют буфера, но большинство
сигналов,   выведенных  на  системный  разъем,  подтянуты  через
резисторы  к  +5В),  при  этом ничего не надо мудрить с сигналом
IORGE,  вместо  него  подается  сигнал  OUTIORQ,  -  и все будет
работать!  И  в  TR-DOS,  и  в  CP/M  - проверено на собственном
компьютере.

    Более  тонкого  подхода требуют компьютеры 5-х версий, из-за
кучи  дополнительных  портов  (закидываем CONDOR тухлыми яйцами,
все можно было сделать изящней и логичнее). Но и на 5-ых версиях
конфликты  возможны  только  при  работе  в  CP/M,  так  как все
дополнительные  порты (за исключением часов) доступны только при
комбинации  сигналов CP/M=1 (5-й бит порта #DFFD) и ROM14=1 (4-й
бит  порта  #7FFD),  то  при  работе  в  режиме Sinclair никаких
конфликтов  с  GS быть не должно (в данном режиме сигнал CP/M по
умолчанию  сброшен  в ноль). Но, тем не менее, возможна работа с
GS и из CP/M.

    Для  этого,  как  мне  кажется, не нужно вносить изменений в
аппаратуру    компьютера,   а   достаточно   изменить   драйвера
конфликтующих   устройств.  Вот  вам  и  еще  одно  преимущество
полноценной операционной системы. Конкретные примеры драйверов я
пока приводить не буду, так как не было возможности проверить их
на практике (у меня Profi 4-й версии).

    Исходя  из  вышенаписанного  очевидно,  что  в имевших место
случаях  неудачного  подключения General Sound'ов, была какая-то
неисправность  самого  GS.  Это весьма вероятно, так как увы, но
продукция  X-Trade  на  первых порах была очень низкого качества
изготовления. Хотя, может быть это и не их вина, по крайней мере
сейчас GS выпускает уже другая фирма - CPG Compex.

    Конечно, если вы в дальнейшем планируете подключать и другую
периферию,  то лучше все-таки поставить буфера по схеме из SE #2
и вывести на слоты все сигналы, которые предусмотрены стандартом
ZX-BUS/NEMO-BUS,  хотя  и  далеко  не все сигналы используются в
настоящее время, но с прицелом на будущее...

             !ВНИМАНИЕ! Касается всех версий Profi! 
 
      Если в Вашем компьютере стоит процессор типа: Z-80A,
      Z-80B,  либо  отечественный  КР1858ВМ1,  то в случае
      подключения  новых устройств, при включении TURBO, в
      режиме   Sinclair,   возможны   сбои   и   зависания 
      компьютера.   Это   связано   с   малой  нагрузочной
      способностью вышеперечисленных процессоров.

Выход:  либо  не  включать  TURBO  в  Sinclair-режиме  (в CP/M и
программах  не  использующих  ПЗУ - глюков не наблюдалось), либо
поставить  процессор  типа  - Z84008PEC, Z840010PEC. Как показал
опыт  использования  новых  процессоров  на  компьютере  Profi -
данная   замена   никак   не  сказывается  на  работоспособности
программ.   И   неработоспособность   ряда  старых  программ  на
компьютерах   KAY   с  аналогичными  процессорами,  по-видимому,
связана   со  схемотехникой  KAY'ев,  а  не  процессоров.  Хотя,
справедливости  ради,  должен  заметить,  что последовательность
байт  - #ED #71, интерпретируется новыми процессорами не как OUT
(C),#00, а - OUT (C),#FF ;)

                             <...>

               Системный разъем компьютеров Profi

- нумерация контактов сверху вниз, сторона А с краю платы;
- L.SOUND и R. SOUND левый и правый каналы AY/YM (соответсвенно:
  канал - A и канал - B, канал C подается на GND);
- звездчкой  (*)  помечены сигналы, которые разведены только на
  платах ver. 5.xx;

         [ контакты * сигналы * контакты * сигналы ]

         .    1B    .  TURBO- .    1A    .         .
         .    2B    .R. SOUND .    2A    .L. SOUND .
         .    3B    .   A15   .    3A    .   A14   .
         .    4B    .   A13   .    4A    .   A12   .
         .    5B    .   D7    .    5A    .   +5V   .
         .    6B    .         .    6A    .         .
         .    7B    .         .    7A    .         .
         .    8B    .   D0    .    8A    .   GND   .
         .    9B    .   D1    .    9A    .   GND   .
 
         .   10B    .   D2    .   10A    . CLC_AY  .
         .   11B    .   D6    .   11A    .   A0    .
         .   12B    .   D5    .   12A    .   A1    .
         .   13B    .   D3    .   13A    .   A2    .
         .   14B    .   D4    .   14A    .   A3    .
         .   15B    .  INT-   .   15A    .OUTIORQ- .
         .   16B    .  NMI-   .   16A    .   GND   .
         .   17B    .  HALT-  .   17A    . *-5V    .
         .   18B    .  MREQ-  .   18A    .         .
         .   19B    .  IORQ-  .   19A    .         .

         .   20B    .   RD-   .   20A    .         .
         .   21B    .   WR-   .   21A    .  BUSRQ- .
         .   22B    . *12MHz  .   22A    .  RESET- .
         .   23B    . READY-  .   23A    .   A7    .
         .   24B    .  +12V   .   24A    .   A6    .
         .   25B    . *TIMER  .   25A    .   A5    .
         .   26B    .   M1-   .   26A    .   A4    .
         .   27B    .  REF    .   27A    .  ROMCS- .
         .   28B    .   A8    .   28A    .  BUSAK- .
         .   29B    .   A10   .   29A    .   A9    .
 
         .   30B    .  CP/M   .   30A    .   A11   .
         .   31B    . TR-DOS- .   31A    .  ROM14  .
         .   32B    .   BLK-  .   32A    .SND_BEEP .

                            * * *

             ПОЛНАЯ СПЕЦИФИКАЦИЯ ПОРТОВ КОМПЬЮТЕРОВ
     PROFI (ver 3.xx), PROFI+ (ver 4.xx), PROFI2+ (ver 5.xx)


        Основная периферия в длинной (логической) адресации
                 для Profi, Profi+, Profi2+.

- логическая адресация действительна во всех режимах работы
  компьютеров;
- /w - означает, что порт доступен только по записи;
- /r - означает, что порт доступен только по чтению;

                    [ CP/M=0/1 & ROM14=0/1 ]

   часы "AS" (номер регистра) /w........................#FFFF 
   порт CMR1 (описание см. ниже) /w.....................#DFFD 
   ИМС AY-3-8910/12, YM-2149F (данные)..................#BFFD 
   ИМС AY-3-8910/12, YM-2149F (номер регистра)..........#FFFD 
   часы "DS" (данные)...................................#FFEF 
   свободные адреса A8-A12..............................***** 
   порт CMR0 (описание см. ниже) /w.....................#7FFD


     Основная периферия в короткой (физической) адресации
                  для Profi, Profi+, Profi2+.

           (основная адресация для режима Sinclair)

                   [ CP/M=0  &  ROM14=0   ]

   порт "FF" /r; часы "AS" /w.............................#FF 
   клавиатура D0-D4(D5) /r; бордюр D0-D2 /w;                  
   чтение магн. D6 /r; запись магн. D3 /w; beeper D4 /w...#FE 
   порты AY/YM; CMR0....................................#xxFD 
   свободно...............................................#FB 
   свободно...............................................#F7 
   часы "DS"..............................................#DF 
   ВГ93 (TR-DOS=1); ВВ55 (TR-DOS=0)-рус...................#7F 
   ВГ93 (TR-DOS=1); ВВ55 (TR-DOS=0)-порт C................#5F 
   ВГ93 (TR-DOS=1); ВВ55 (TR-DOS=0)-порт B................#3F 
   ВГ93 (TR-DOS=1); ВВ55 (TR-DOS=0)-порт A /w; Kempst./r..#1F 
   RQ ВГ93 (TR-DOS=1); см. порт "FF" (TR-DOS=0) /w........#FF

 !при CP/M=1 системный регистр RQ ВГ93 доступен по адресу #BF!

- назначение регистров ВГ93 см. в нижеследующей таблице;
- назначение регистра RQ ВГ93 дано в отдельной таблице;
- описание регистров AY-3-8910/12, YM-2149F см. в документации
  на данную ИМС;

<..............................................................>

           Расширенная периферия в короткой адресации
                     только  для Profi2+.

- все порты, выбирающиеся по длинным адресам, работают и при
  включенной короткой адресации (например порты CMR0, CMR1
  могут в этом режиме выбираться и по коротким, и по длинным
  адресам);
- COM1 означает, что данный адрес относится к COM-порту;

                    [  CP/M=1  &  ROM14=1  ]

   часы "AS" - номер регистра /w..........................#FF
   клавиатура D0-D4(D5) /r; бордюр D0-D2 /w;                  
   чтение магн. D6 /r; запись магн. D3 /w; beeper D4 /w...#FE 
   регистры AY-3-8910/12, YM-2149F......................#xxFD 
   модем "CONDOR" (внешний адрес).........................#FB 
   таймер ВИ53/2 (внешний адрес)..........................#F7 
   регистр управления ВВ51 (COM1).........................#F3 
   регистр управления ВИ53/1 (COM1).......................#EF 
   порт IDE /w............................................#EB 

   порт рус ВВ55..........................................#E7 
   регистр данных ВГ93 [#7F]..............................#E3 
   часы "AS" (неосновной адрес) /w........................#DF 
   модем "CONDOR" (внешний адрес).........................#DB 
   таймер ВИ53/2 (внешний адрес)..........................#D7 
   регистр данных ВВ51 (COM1).............................#D3 
   регистр канала 2 ВИ53/2 (COM1).........................#CF 
   порт IDE /r............................................#CB 
   порт ВВ55 (порт C).....................................#C7 

   регистр сектора ВГ93 [#5F].............................#C3 
   часы "DS"..............................................#BF 
   модем "CONDOR" (внешний адрес).........................#BB 
   таймер ВИ53/2 (внешний адрес)..........................#B7 
   регистр управления контроллером прерываний (см. ниже)..#B3 
   регистр канала 1 ВИ53/1 (COM1).........................#AF 
   порт IDE /w............................................#AB 
   порт ВВ55 (порт B).....................................#A7 
   регистр дорожки ВГ93 [#3F].............................#A3 

   часы "DS" (неосновной адрес)...........................#9F 
   модем "CONDOR" (внешний адрес).........................#9B 
   таймер ВИ53/2 (внешний адрес)..........................#97 
   аналогично #B3 (COM1)..................................#93 
   регистр канала 0 ВИ53/1 (COM1).........................#8F 
   порт IDE...............................................#8B 
   порт ВВ55 (порт A).....................................#87 
   регистр команд ВГ93 [#1F] /w; регистр состояния ВГ93/r.#83 
   свободно...............................................#7F 

   свободно...............................................#7B 
   свободно...............................................#77 
   свободно...............................................#6F 
   свободно...............................................#5F 
   системный регистр ВГ93 [#FF]...........................#3F 

   - описание портов IDE см. ниже;

<..............................................................>

                  CONTROL MEMORY REGISTERS

                Значение разрядов порта CMR1
                   (#DFFD - CP/M register)

                                                            
   [D0 segA3]                                                  
   [D1 segA4] Номер проецируемой страницы памяти (строка)      
   [D2 segA5]                                                 

   [        ] Выбор положения окна проецирования сегментов:   
   [D3  SCO ] 0 - окно номер 1 (#C000-#FFFF)                   
   [        ] 1 - окно номер 2 (#4000-#7FFF)                   
                                                               
   [D4 WOROM] 1 - отключает блокировку порта CMR0 и выключает  
   [        ]     ПЗУ, помещая на его место ОЗУ из seg 00      
                                                               
   [        ] 1 - блокирует работу контроллера из ПЗУ TR-DOS   
   [D5 CP/M ]     и включает порты на доступ из ОЗУ (ROM14=0); 
   [        ] При ROM14=1 - мод. доступ к расширен. периферии  

   [D6  SCR ] памяти CPU на место seg 02, при этом бит D3 CMR0 
   [        ] должен быть в 1 (#8000-#BFFF)                    

   [D7 80DS ] 0 - Spectrum растр (seg 05)                      
   [        ] 1 - Profi растр (seg 06 & seg 3A;seg 04 & seg 38

<..............................................................>

                  Значение разрядов порта CMR0
                (#7FFD - Sinclair 128 register)

   [D0 segA0]                                                  
   [D1 segA1] Номер проецируемого сегмента памяти (столбец)    
   [D2 segA2]                                                  

   [        ] Выбор положения растра экрана Spectrum:          
   [        ] 0 - seg 05; 1 - seg 07 (80DS=0)                  
   [D3 POLEK]                                                  
   [        ] Выбор положения экрана Profi (80DS=1):           
   [        ] 0 - экран точек seg 04, аттрибуты seg 38;        
   [        ] 1 - экран точек seg 06, аттрибуты seg 3A.        

   [        ] Переключает страницы ПЗУ Spectrum (CP/M=0):      
   [D4 ROM14] 0 - Spectrum 128; 1 - Spectrum 48.               
   [        ]                                                   
   [        ] Модификатор внешних устройств (CP/M=1)           
                                                               
   [D5 BLOCK] Блокирует работу порта CMR0 (WOROM=0)
                                                                
   [D6      ]                                                 
   [D7      ]


            Системный регистр контроллера дисководов
       (#FF при CP/M=0 (из ПЗУ); #BF при CP/M=1 (из ОЗУ))

  [D0      ] Выбор дисковода A-D /w                          
  [D1      ]                                                 

  [D2      ] 0 - сброс ВГ93 /w                               

  [D3      ] 1 - HRDY; 0 - эмуляция сигнала IP /w            

  [D4 SIDE ] Выбор стороны диска: 0 - верхняя, 1 - нижняя /w 

  [D5      ]                                                 

  [        ] Плотность записи: 0 - MFM/DD; 1 - FM/SD /w      
  [D6      ]                                                  
  [        ] Чтение сигнала DRQ /r                           
  
  [D7      ] Чтение сигнала INTRQ /r                         


     Регистр управления контроллером прерываний и компортом
                   (#B3 при CP/M=1 & ROM14=1)

  [    INT ] Прерывания: 1 - разрешены; 0 - запрешены  /w     
  [D0      ]                                                  
  [    RI  ] Чтение линии RING компорта /r                    

  [D1      ]                                                   
  [D2      ]                                                  
  [D3      ]                                                  
  [D4      ]                                                  
  [D5      ]                                                  
  [D6      ]                                                 
                                                              
  [D7  DCD ] Чтение сигнала DCD компорта /r                  


                    Порты внешней периферии

                      Порты контроллера IDE
                  (доступны только при CP/M=1)

   #06AB - системный регистр контроллера /w
   #07EB - регистр команд /w
   #07CB - регистр состояния /r
   #06EB - регистр номера головки на запись
   #06CB - регистр номера головки на чтение
   #05EB - ст. байт номера дорожки на запись
   #05CB - ст. байт номера дорожки на чтение
   #04EB - мл. байт номера головки на запись

   #04CB - мл. байт номера головки на чтение
   #03EB - регистр номера сектора на запись
   #03CB - регистр номера головки на чтение
   #02EB - счетчик секторов на запись
   #02CB - счетчик секторов на чтение
   #01EB - регистр стартового цилиндра предкомпенсации /w
   #01CB - регистр ошибок /r

                      Порты General Sound
   (!при CP/M=1 & ROM14=1 возможны конфликты с компортом!)

   #BB - регистр команд /w; регистр состояния /r
   #B3 - регистр данных /w; регистр вывода /r

   Подробнее о портах GS см. в руководстве по программированию.

                     Порты Kempston Mouse
 
   #FBDF - X-координаты /r
   #FFDF - Y-координаты /r
   #FADF - состояние кнопок /r



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

Введение - Несколько авторских слов.

EventS Overview - Surv!v0r о событиях и фактах: Открытие Спектрумовской банерной сети, у POS появился сайт, обзор демок с СС'2000, переименование Eternity Industry, результаты Final Shoque'2k, ЧВ2 не будет, закрытие газеты Born Dead, группа LFG распалась.

Hi Tech - Stingrey о мире технологий.

Spectrum IS The BeSt - RobuS^Entire готовит новый суперклон Спектрума.

ChaoS ConstructionS'ooo - CyberJack и Хаос: подробнеший рассказ о прошедшем пати.

Paradox'2k - рассказ SerzhSoft'а о Ростовском демопати.

Theme - Зондирование масс: ответы на вопрос к спектрумистам: 'Что вы можете сказать о Спектруме, который войдет в XXI век'.

С Битой По Миру - О сцене и сценерах, не выпущенном софте и ретроспективе на демосцену.

Hard - Profi - Подключение к Profi различной периферии.

DevilS - Взаимоотношения на сцене: разборки SerzhSoft с авторами журнала Deja VU.

Ins!de - Спектрум и его потенциал: о создании глобального печатаного издания, уходе Медногова со спектрума и т.д.

Demoscene RPG - Инструкция по ролевой игре 'Дeмo Сцена'.

Russian Lan Rules - Jam о писателях и для писателей: список наиболее часто встречаемых ошибок русского языка.

Scened - ДемоСцена глазами Prog Master'a.

Unusual - Литературная страничка на злобу дня.

Insanity JokeZ#2 - Второй сборник сценовой лирики.

HeresY: unpublished - Религия и ее суть.

Cred!7z - Реквизиты.


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

Похожие статьи:
Очумелые ручки - Цифровой индикатор состояния порта.
Апперативчик - вступление от авторов.
Игры - Описание игры AFTER SHOCK.
Лучшие солюшены SOSG - COLONY.
Письма - Письмо из Горячего Ключа.

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