Insanity
#08
19 января 2001 |
|
Hard - 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
Другие статьи номера:
Похожие статьи:
В этот день... 21 ноября