Open Letters #02
20 февраля 2000

Открытые письма Nemo №2.2

Открытые письма Nemo №2.2
230027                           20.11.99

   Здравствуйте, уважаемый капитан Немо!

   Пишет  Вам  N. Мы (я и NN) приобрели у
Вас недавно 4 настроенных платы KAY1024 и
увезли  их  с собой в далёкую Беларусь, а
именно  в  город  Гродно. К счастью платы
были довезены без проблем (имеется в виду
таможенный  контроль) и все 4 оказались в
рабочем  состоянии. Сразу бы хотелось об-
ратить Ваше внимание на проблемы, связан-
ные  с  подключением  плат  к монитору, а
именно  с  подключением  к  монитору типа
EGA,  поскольку к обычным мониторам (типа
CGA)  оных не возникало. К сожалению, мо-
ниторам  типа  EGA (а некоторым моделям и
CGA)  необходимы  отдельно сигналы верти-
кальной и горизонтальной синхронизации, у
Вас же на разъём подключения монитора вы-
ходит  только синхросмесь. Это конечно не
фатально,  но  пришлось полазить с осцил-
лографом  по плате в поиске этих сигналов
и  потратить  и без того не лишнее время.
Далее  встал вопрос о подключении клавиа-
туры.  С  полями типа 1-5, Q-T, A-G, 6-0,
Y-P,  CS-V, H-ENTER, B-SPACE всё вроде бы
понятно,  но  непонятны  обозначения К10,
К29, К38, К47, К56??? Догадаться, что это
парные  контакты,  не трудно, но где что?
Опять трата времени и поиск методом науч-
ного   тыка.  К  счастью  с  подключением
TR-DOS  вроде особых проблем не возникло,
если  не считать того, что пришлось долго
повозиться, пока подключили 3.5" дисковод
(как  оказалось,  нужно было просто пере-
вернуть половинку РС-шлейфа).
   После успешного запуска самого компью-
тера, мы приступили к подключению винчес-
тера...  Но  вот тут нас постиг крутейший
облом.  Установив плату контроллера HDD в
слот и подключив шлейф к винчестеру (быв-
шему - почему бывшему, читайте далее) HDD
объёмом  41  Mb,  мы включили компьютер и
обрадовались  тому,  что он запустился...
значит,  правильно  всё  подключено (надо
заметить,  что  перепроверили мы всё нес-
колько раз), запускаем ISDOS... И начина-
ем  читать  "ИНСТРУКЦИЯ ПО УСТАНОВКЕ ВИН-
ЧЕСТЕРА  IDE/ISDOS".  Первое,  что  сразу
бросилось  в глаза, это то, что ide3+.blk
не  захотел  запускаться, зато с радостью
установился ide5+.blk, это несколько нас-
торожило, ну да ладно... далее совсем вы-
било то, что на диске мы не нашли обещан-
ный  bat-файл,  а  именно mem_tu+3.bat???
где  он  и  что должен запускать??? Опять
куча  непоняток и потраченного времени...
Затем, посмотрев тексты в самом ISDOS, мы
решили их распечатать, для чего нужно бы-
ло  выключить компьютер (чтобы подключить
принтер).  Хочу  заметить,  что меня нес-
колько   удивило  отсутствие  какого-либо
com-файла  для  парковок  головок??? Имея
опыт  общения  со  старыми моделями РС, я
знал,  что это только в новых моделях HDD
головки  паркуются  сами,  а  в старых их
нужно  вручную  парковать...  ну, нет так
нет! Не найдя хоть какой-либо информации,
я  выключаю питание... Винчестер, взвизг-
нув (подозрительно так) замолк... включив
питание, внутри винчестера раздался неис-
товый  щелчок,  и  всё стихло... наконец,
разобравшись с документацией, мы запуска-
ем  программу настройки и, вместо обещан-
ной  правой  панели с информацией о пара-
метрах  винчестера,  имеем сообщение: "НЕ
УДАЛОСЬ  ПРОЧИТАТЬ  ПОРТЫ ВИНЧЕСТЕРА", да
ещё  и  вдобавок HDD наш начал как-то по-
дозрительно  трещать,  как  будто головки
хотят  вырваться  наружу. Помучавшись ещё
немного с настройками, мы поняли, что ни-
чего не добьёмся... Перезапускав несколь-
ко раз ISDOS, мы обратили внимание на то,
что  если нажать RESET и не отпускать, то
треск  мог прекратиться, а мог и нет! Так
или  иначе,  мы добились только того, что
программа  настроек  попросту стала зави-
сать...  в описании ISDOS говорилось, что
если  программа  виснет или сбрасывается,
то  проблема кроется в железе (хотя непо-
нятно,  что нельзя было как-то по-другому
об  этом известить? Право, это уже скорее
вопрос  к  разработчикам  ISDOS), но, так
или иначе, мы решили проверить HDD, подк-
лючив  к  РС,  вот тут-то наши опасения и
подтвердились!   BIOS  напрочь  отказался
опознавать     винчестер...HDD     только
по-прежнему  трещал,  ни на что не реаги-
руя. Хотя до этого он прекрасно работал с
РС и на нём стояла MSDOS. Кинувшись в по-
иски  причин, что всё же привело к траги-
ческой  кончине HDD, мы обследовали шлейф
на  предмет  замыкания соседних контактов
(результат - всё исправно). И тут нас шо-
кировало  то,  что, по сути, скорее всего
причина  кроется в самом контроллере HDD.
Обследовав его более детально, мы обнару-
жили, что у него не хило сбит шаг на кон-
тактах, которыми он вставляется в слот, а
именно  30 pin практически залез на место
pin  29, я уже не говорю о том, как умуд-
рился не вылететь сам компьютер???
   Так  или  иначе, похоже, я остался без
HDD,  но  вопрос не в этом... хотя деньги
за  HDD были тоже заплачены! Где гарантия
того, что, купив новый HDD, не повторится
та  же самая история? Так что хотелось бы
услышать  Ваше  мнение по этому поводу, а
также решение проблемы дальнейшей эксплу-
атации контроллера HDD.
   Но  на  этом история не заканчивается,
успокоившись  с подключением HDD, я решил
подключить C-DOS модем. Изготовив колодку
под  разъём  NEMOBUS,  я  подключил его к
порту  #77(119) (A3 и А7). Однако недолго
мне пришлось радоваться, поскольку ни од-
на  из программ не хотела его опознавать.
Хотя, командуя из BASIC в порт, модем ве-
село щёлкал релюшкой, давая тем самым по-
нять,  что трубка поднимается и опускает-
ся.  Попробовав считать значения с порта,
я  получал  в любом случае 0, опять непо-
нятка какая-то...
   Не добившись работоспособности модема,
я  подключил  kempston  mouse  по  схеме,
опубликованной  в ZX-FORMAT. И опять меня
постигла  та же участь, что и с подключе-
нием модема. У мыши полу-исправно работал
только порт #FDDF (65503), полу-исправно,
поскольку данные из него шли с некоторыми
помехами.  (Надо  заметить, что и модем и
мышь  исправно работают на других компью-
терах, не KAY). Другие же порты, а именно
#FADF (65223) и #FBDF (64479) по-прежнему
содержали  0  в  любом случае, будь подк-
лючён девайс или нет.
   Но, не теряя надежды, я продолжил исс-
ледования. Мне не давал покоя вопрос, по-
чему данные из порта #FDDF идут с помеха-
ми???  И надо признаться, я добился успе-
ха,  хотя  меня  вряд  ли это обрадовало.
Всему  виной  оказался порт #1F(31) kemp-
ston joystick'a... Я написал на BASIC не-
большую программульку:
   10  PRINT IN (#77):GO TO 10 из которой
видно,  что,  подставляя вместо порта #77
любой  другой  порт,  в том числе и порты
kempston mouse, в любом случае мы получим
те  же  значения,  что и в порте #1F(31).
Исходя из этого, у меня зреет вопрос: это
вообще  что? глюк самой разработки схемы?
Неисправность моей платы? Хотя в принципе
это  не  столь  важно.  Главное, что меня
сейчас интересует, так это, как исправить
дешифрацию порта kempston joystick или на
худой  конец  вообще  нафиг его убрать...
хотя второе менее предпочтительно.
   Вот  так закончилось моё первое, наде-
юсь,  не  последнее  знакомство с замеча-
тельным компьютером KAY1024. В общем, ма-
шина неплохая, особенно мне нравится 7MHz
и  1Mb памяти, подключив COVOX или SOUND-
RIVE, можно проигрывать музыкальные моду-
ли с AMIGA или РС при дискретизации звука
18-22 kHz, а это уже не мало! Самое инте-
ресное  то,  что на всё это хватает чисто
ресурсов  процессора без всяких там музы-
кальных плат и DMA.
   Напоследок  меня  ещё  интересуют нес-
колько вопросов:
   1)  Многие  тесты  определяют  наличие
процессора  Z80  или Z84! Так вот вопрос,
они  чем-то отличаются? Как-то временными
параметрами  или  наличием каких-либо ко-
манд?
   2)  Какие  порты в KAY1024 отвечают за
вывод  на принтер? И в частности, как во-
обще осуществляется командование?
   3)  Как  в  KAY1024 устроена память? А
именно как происходит обращение к верхней
памяти?   (желателен  пример  на  assemb-
ler'e).
   4) В порту #7FFD: bit 6 - AUTO и bit 7
- a18: что означает AUTO и что а18?
   5)В порту #1FFD: bit 0 - RAM/ROM в 0-й
сектор  -  нельзя ли подробнее узнать про
этот бит? Также интересуют и другие биты,
например  bit 1 - Q8 и bit 6 - Q6: к чему
они относятся?
   6)  Возвращаясь  к  проблеме принтера:
кое-что  я всё-таки узнал (если правильно
- утвердите, если нет - то опровергните):
а)  bit  7 порта #nnFE отвечает за готов-
ность принтера? b) Для того, чтобы отпра-
вить байт на принтер, необходимо включить
регистр #0E сопроцессора путём командова-
ния  в порт #FFFD, затем выставить нужный
байт  для  печати,  отправив  его  в порт
#BFFD  и  затем инициализировать принтер,
отправив число Х в порт #1FFD.
   Вот  это  число Х меня и интересует. В
драйвере  ISDOS  туда  отправляется число
#31, но у меня не проходит такой вариант.
Жду Ваш вариант объяснения.
   7)  Ну  и последний на сегодня вопрос:
запустив  одну программу, я получил сброс
компьютера, но попал не в прошивку TR-DOS
и даже не в BASIC-128 - я попал в прошив-
ку  теневика  PROFI.  Интересует, что она
там  делает?  Как её вызвать нормально? И
можно ли туда записать что-то своё вместо
неё?
        На этом разрешите откланяться, N.

P.S. Хорошая вещь OPEN LETTERS, но только
скажите своей секретарше, чтобы она мень-
ше  допускала грамматических ошибок, а то
читать страшно...

_________________________________________

          Реплика "секретарши":

   Письмо  N, судя по всему, было набрано
в модной ныне программе Word для Windows.
Весьма полезная вещь при поиске опечаток,
однако не отменяющая необходимости знания
русского  языка,  а главное, абсолютно не
понимающая смысла написанного. :-) Приво-
жу список ошибок, не отловленных Word'ом:

1.  "имеется ввиду" вместо "имеется в ви-
ду"

2. "если не считать то что пришлось..."
надо:  "если  не  считать того, что приш-
лось..."

3. "что бы подключить". Надо: "чтобы"

4. "с старыми моделями" - "со старыми..."

5.  "...включив питание внутри винчестера
раздался неистовый щелчок...", "...купив
новый  HDD не повторится таже самая исто-
рия."  и  "Исходя  из  этого у меня зреет
вопрос".
   Во всех случаях: неверное употребление
деепричастного оборота. Классический при-
мер:  "Подойдя  к  окну, шляпу сдуло вет-
ром."  Деепричастный  оборот  допустим  в
случаях,  когда  в  самом предложении и в
деепричастном обороте действие совершает-
ся  одним и тем же лицом. Кстати, "та же"
-  два  слова,  а не одно, и даже WinWord
должен бы это знать.

6. "НЕУДАЛОСЬ ПРОЧИТАТЬ..." - "Не" с гла-
голами пишется раздельно.

7. "...в добавок HDD наш начал как-то по-
дозрительно  трещать,  как  будто головки
хотят  вырваться наружу." - Неверное сог-
ласование времён. Должно быть: "...голов-
ки хотели...". Вдобавок, слово "вдобавок"
пишется слитно.

8.  "Помучавшись еще немого..." - Word не
отличит немого от "немного".

9. "не на что не реагируя" - "ни на что"

10.  "я уже не говорю о том что как умуд-
рился..." - Целых три местоимения подряд.

11.  "Однако  не долго мне пришлось..." -
"Недолго"  в  данном  случае  надо писать
слитно.

12. "не одна из программ" - "ни одна..."

13. "на худой коней" - Либо "на худой ко-
нец", либо "на худых коней".

14. "На последок" - "Напоследок"

15.  "Ascendacy" - "Ascendancy". При спи-
сывании  незнакомых  слов  на  незнакомом
языке,  бывает полезно иногда и в словарь
заглянуть. Заодно и смысл слова узнаете.

   О  пропущенных  запятых, числом в нес-
колько десятков, я уже и не говорю. Одна-
ко,  надо  отдать должное, читать напеча-
танное письмо гораздо легче, нежели напи-
санное от руки! В следующий раз присылай-
те,  пожалуйста,  ещё и электронную копию
на  дискете  или e-mail'ом. Не надо будет
всё это ещё раз вбивать и ошибки править.

_________________________________________

       Здравствуйте, уважаемый  N!

   1).  Spectrum  рассчитан  на  работу с
TV-приёмником  либо  с монитором, имеющим
входы  по TV-стандарту. (См. OPEN LETTERS
- тема неоднократно обсуждалась).
   2).   Насчёт  подключения  клавиатуры,
по-моему, в листе-паспорте всё нормально,
-  по  крайней мере, ранее таких вопросов
не  возникало.  (За  исключением  попыток
подключения  клавиатуры  при  помощи оте-
чественной вилки РП15-15 ШВКВ, - но у неё
"мудро"  пронумерованы штырьки - зеркаль-
но.  Вероятно, это было сделано для того,
чтобы  пользователям жизнь сахаром не ка-
залась). Кроме того, это можно проследить
по схеме.
   3).По винчестеру.
   3.1. Винчестер, требующий парковки го-
ловок  - это очень опасная вещь, да ещё и
древняя. Что Вы будете делать, если у Вас
"слетит"  программа в ISDOS'e? Эта ситуа-
ция  может возникнуть и при отладке прог-
раммы и при запуске "левой" программы под
ISDOS'ом.  Вручную  парковать?  Винчестер
отличается  от дисковода тем, что Вы зап-
росто  можете  потерять ВСЮ информацию, в
отличие  от  одного  диска (в дисководе),
поэтому такие винчестеры лучше не исполь-
зовать - будет себе дороже. Это не единс-
твенная  прелесть древних винтов (см. ни-
же).
   3.2. Вы довольно подробно описали свои
манипуляции  с  установкой  винта,  но не
упомянули  2  очень  важные  вещи: 1) тип
винта, 2) тип блока питания.
   При  подключении  винта проблемы (если
они  возникают)  носят, как правило, СИС-
ТЕМНЫЙ  ХАРАКТЕР.  Объясняю подробно, что
это значит.
   Системные проблемы - это проблемы, ко-
торые  "сидят"  во взаимодействии софта и
харда.  Причём  те,  что  сидят в hard'e,
включают в себя и взаимодействие контрол-
лера  с  винтом и винта с блоком питания.
Блок питания же, в свою очередь, оказыва-
ет  влияние на все подсистемы компьютера.
Так  например, если расположить шланг IDE
рядом  с  силовым транзистором БП, то га-
рантированно работать не будет. Дисковод-
ный шлейф менее критичен, т.к. там сигна-
лы  чередуются  сигнал/земля. Кроме того,
для   питания  ДРЕВНЕГО  ВИНТА  требуются
большие  токи, а большие токи - это БОЛЬ-
ШИЕ ПОМЕХИ.
   Но  это  касается  сбоев.  У  Вас  же,
по-видимому,  сгорел винчестер. Винчестер
пережечь  сигналами с контроллера практи-
чески  невозможно, если конечно не делать
подключений  при  включенном  питании.  В
этом  можно  убедиться, "перевернув шлейф
IDE наоборот - работоспособность при пра-
вильном  подключении  (т.е. если перевер-
нуть  обратно,  в  правильное  положение)
восстанавливается.  Могу  также  заявить,
что при подключении винтов НИ РАЗУ не бы-
ло отмечено случая, чтобы винт необратимо
терял  информацию  (т.е.  не тестировался
после  попытки  подключения  на РС-ке). А
вот  перегорать  винты - перегорали дейс-
твительно.  Перегорали же из-за блока пи-
тания. Механизм примерно следующий:
   При  разгоне  винта и при резкой оста-
новке  разгона  (например, по RESET'у - у
некоторых  винтов)  РЕЗКО  изменяется ток
нагрузки  БП.  И  блок питания вследствие
ПЛОХОЙ переходной характеристики (реакции
на  резкие  скачки  тока  нагрузки в виде
выбросов напряжения) выдавал "на-гора" до
6.5  - 7.0V. В отдельных случаях это при-
водило  к  отключению  БП  (порог  защиты
обычно  6.0  -  6.5V). Но некоторые винты
горят  и  при  ШЕСТИ  вольтах. В качестве
примера  приведу  ST351.  Причём  горят в
буквальном  смысле  -  с  дымом.  Винт же
ST157, например, гарантированно блокирует
блок  питания  (если у того есть защита).
Если  же  защиты  нет,  то  горит. (ST157
внешне похож на консервную банку).
   Все  известные  мне блоки питания, вы-
пускавшиеся  под  Spectrum, не рассчитаны
на  подключение древних винтов. IBM-вские
блоки  питания также опасны, как и Spect-
rum'овские.  Для  IBM-БП ток нагрузки 1 -
2А (а именно столько потребляет Spectrum)
-  это  режим ХОЛОСТОГО ХОДА. Если в этом
режиме "прыгает" ток нагрузки на величину
порядка  1 - 2А, то БП с вероятностью (от
модели к модели и от изготовителя к изго-
товителю,  т.е.  в  зависимости  от типа)
около 30% ВЫХОДИТ ИЗ РЕЖИМА стабилизации.
Что  при  этом перегорит - винт, контрол-
лер, плата или дисковод - одному богу из-
вестно.  Древние  винты  имеют и ещё одну
неприятную  особенность (не все, но неко-
торые)  -  они начинают разгоняться СРАЗУ
ЖЕ  после появления питания. БП же в этот
момент  находится  в  переходном  режиме,
когда ОС ещё не действует. Аналогично при
выключении,  -  и в тот и в другой момент
возможны выбросы.
   Как-то  скорректировать  или  изменить
параметры   БП   практически  невозможно.
(Исключение  составляет, пожалуй, лишь БП
9022  -  у  него можно сравнительно легко
улучшить переходную характеристику).
   Что  же  тогда  делать?  А ответ очень
прост  - не покупать древних винтов. Ведь
хватает  же  ума у пользователей не поку-
пать  древние  дисководы двойной высоты с
ремённым  приводом шпинделя (или 5305 ар-
мянского "разлива").
   При  установке  на  Spectrum важнейшей
характеристикой  винта  является  (внима-
ние!) не ёмкость, а ПОТРЕБЛЕНИЕ тока. Как
правило,  ВСЕ  винты двойной высоты имеют
очень   большое  потребление,  их  нельзя
брать ни в коем случае. Исходя из имеюще-
гося опыта, могу рекомендовать винты мар-
ки  CONNER  (именно  ими комплектуются п.
1.9.).  У  них потребление 0.2 - 0.3А как
по 5V, так и по 12V. Т.е. потребление то-
ка  примерно  такое  же, как у дисковода.
Поэтому их можно использовать с имеющими-
ся БП. (В крайнем случае, если БП "не тя-
нет", то можно отключить второй дисковод,
и  всё  будет  работать). Замена БП - до-
вольно  болезненная для компьютера проце-
дура.   Был  зафиксирован  случай,  когда
пользователь, пытаясь скомпоновать заново
машину,  пережёг винчестер, пытаясь запи-
хать  его под БП. (Другого места в машине
не нашлось, - более мощный БП - это боль-
шие габариты).
   Теперь  насчёт "...не хило сбит шаг на
контактах...".  Попробуйте  ради экспери-
мента  раз  СТО переподключить контроллер
дисковода, - и он БУДЕТ РАБОТАТЬ. Не надо
перекладывать  с больной головы на здоро-
вую. Разъёмы контроллера винта и контрол-
лера  дисковода абсолютно одинаковы - это
один  и  тот  же конструктивный элемент в
PCAD'e.  Другое  дело, если ВЫЛОМАН ключ.
Такой  контроллер,  действительно, не жи-
лец,  -  и  он перегорит рано или поздно.
Хорошо  ещё,  если  при  этом не сгорит и
плата.
   Позволю себе несколько замечаний обще-
го  характера. Во-первых, не следует при-
нимать  позу  обиженного  и искать чьи-то
огрехи. Даже если они и есть, Вам это НИ-
ЧЕМ НЕ ПОМОЖЕТ. В тоже время, если Вы об-
наружите  какой-либо  изъян в собственных
действиях,  то это ПОМОЖЕТ ТОЧНО. Это бо-
лее продуктивный подход. У Фёдора Михалы-
ча  это очень хорошо сказано ("Братья Ка-
рамазовы"):  "Именно, именно приятно оби-
деться.  Это Вы так хорошо сказали, что я
и  не слыхал ещё. Именно, именно я-то всю
жизнь и обижался до приятности, для эсте-
тики  обижался, ибо не только приятно, да
и красиво иной раз обиженным быть; - вот,
что  Вы  забыли, великий старец: красиво!
Это я в книжку запишу!"

   Во-вторых, если что-то делается в пер-
вый  раз,  то  как говорится, первый блин
комом. Я не хочу сказать, что это хорошо,
я хочу сказать, что это нормально. С дис-
ководом  проблем не возникло просто пото-
му, что есть ОПЫТ. Вы видели, как это де-
лают другие, Вы делали это сами и ЗНАЕТЕ,
какая  последовательность действий приво-
дит к успеху. Винчестер же вещь абсолютно
новая  и все действия нужно делать ОСМЫС-
ЛЕННО.  Если Вы не в состоянии справиться
с  этой  задачей,  то необходимо покупать
готовую  технику. Или на худой конец, как
в этом случае - контроллер с винчестером.
Нечто похожее происходило и в начале 90-х
годов,  когда  публика  пересаживалась  с
кассетных  Spectrun'ов на машины с диско-
водом.  Вялотекущая  шизофрения  с охами,
ахами, трахами, дымом и копотью продолжа-
лась  до  тех пор, пока на рынок не вышли
профессионалы  с массированными продажами
осмысленно  сделанной  техники, с высокой
технологичностью  и хорошей воспроизводи-
мостью. После этого публика посмотрела, -
и научилась, - и теперь делает это самос-
тоятельно.
   4. По C-DOS-модему ничего определённо-
го  сказать  не  могу, т.к. не располагаю
информацией.  Судя по тому, что Вам приш-
лось  распаивать колодку (ещё раз залезли
с паяльником в плату!) и забегая несколь-
ко  вперёд (исходя из Ваших экспериментов
с программой 10 PRINT in(#77): GO TO 10),
можно  заключить, что дело в IORQ/IORQGE.
Порт   кемпстон-джойстика   занимает  ВСЕ
нечётные  порты,  а  порт  клавиатуры ВСЕ
чётные  порты (по чтению). Это в том слу-
чае,  если  ничего не подключено на шине.
Если   подключается  шинное  периферийное
устройство, то оно при обнаружении своего
адреса ОБЯЗАНО, НЕ ДОЖИДАЯСЬ сигнала IORQ
(т.е.  только по комбинации адреса!) заб-
локировать  прохождение  IORQ посредством
линии  шины  IORQGE.  В этом случае порты
самой машины и, в том числе, порты джойс-
тика (либо клавиатуры) БЛОКИРУЮТСЯ и ШИНА
переходит в свободное состояние для обме-
на  с  опознавшей свой адрес периферийной
платой. Этот способ подключения периферии
более  эффективен, чем всякие хитро наво-
роченные  дешифраторы в самой машине. Это
то же самое, что искать свечи зажигания в
дизельном  двигателе. В качестве приложе-
ния  см. статью ШЕСТИЛЕТНЕЙ давности. Ви-
димо, она до сих пор не потеряла актуаль-
ности. Забудьте про эти дешифраторы, ина-
че паяльником наломаете столько дров, что
вообще  ничего  работать  не  будет. (См.
схему: элемент D55.2-.4 (74F32/1533ЛЛ4)).
   Пример (схемотехнический), как работа-
ет блокировка IORQ/IORQGE, Вы можете изу-
чить,   рассмотрев  совместно,  например,
схемы  IDE-driv'a  и материнской платы, -
далее по схемам:
   1.  По шине поступает комбинация адре-
са.  Если периферийное устройство на этом
адресе,  то  оно  его  игнорирует. Сигнал
IORQ  беспрепятственно (все IORQGE в лог.
"0") проходит на плату. В случае если это
адрес  устройства (в IDE-drive это комби-
нация  А1=0  и А2=/=0, - дешифратор D1, а
также   это   не  цикл  извлечения  КОП'a
(M1/=1) и не TRDOS (DOS/=1), то активизи-
руется  дешифратор  D1 (ИD7) и сигнал EBL
переходит в 0. Далее по 19 выводу шинного
формирователя  0-лог.  переводит его (де-
шифратор,  ИМС  D6.2/AП5)  в активное (по
выходам)  состояние. На выводе 17:+5~ лог
1,  поэтому  выход  В3 (3 ножка D6.2 AП5)
переходит из высокоимпедансного состояния
(а  точнее  "0"-го, т.к. со стороны платы
эта  ламель (13А, Х2.2, IORQGE) подсажена
на  лог. 0 резистором на входах D 55.2- D
55.4.  (Это либо R57, либо R56, либо R61,
-  в зависимости от того, где установлена
плата периферии, - в рассматриваемом нами
случае IDE drive) в "1"-ое с стояние. Да-
лее  в  базовой плате по ламели 13А разъ-
ёмов XS 6-8 этот самый лог.1 с АП5 посту-
пает   на   один   из   входов  элементов
D55.2-.4.  Так как элементы включены пос-
ледовательно, то возникающий ПОСЛЕ АДРЕСА
сигнал  IORQ (активное состояние - лог.0)
"застревает"/блокируется/не   проходит  в
ИМС  D55,  на носике 8 DD55 строгая лог.1
(НЕСМОТРЯ  НА  ТО, ЧТО НА ВХОДЕ цепочки -
схемы  арбитража  DD55.2  (нога 2) IORQ в
ЛОГИЧЕСКОМ НУЛЕ. Таким образом ВНУТРЕННИЕ
ПОРТЫ  ПЛАТЫ (в том числе и порты клавиа-
туры/джойстика)  НЕ ОПРАШИВАЮТСЯ. И пери-
ферийная   плата  (IDE-drive)  ПРОИЗВОДИТ
ввод/вывод портов, и ей никто не мешает.
   Что  же касается "... работают на дру-
гих  компьютерах...",  то это потому, что
там  хитрые дешифраторы на платах, вполне
возможно,  ещё  и  коцаные, ("потыканные"
паяльником).  В KAY'ях же дешифрация пор-
тов  самой платы предельно упрощена, т.к.
вопросы  расширения  решаются  при помощи
IORQ/IORQGE, т.е. схемотехника дешифрато-
ров перенесена в периферийные платы.
   Это  более разумно, т.к. нет необходи-
мости  в ковырянии дешифраторов. "Жёстко"
вделанные дешифраторы в материнской плате
никогда  не покроют всех необходимых ком-
бинаций  адресов.  А  это  значит, что их
придётся  периодически  "тыкать" паяльни-
ком.  К  чему  это может привести, объяс-
нять, надеюсь, не надо.

        Теперь ответы на вопросы.

1.  Процессоры  ничем не отличаются, если
не  использовать  недокументированные ко-
манды.  Если же их использовать, то можно
всю жизнь искать и находить отличия.

2.  Выводом  на  принтер занимаются порты
AY8910   (см.   лист-паспорт   на   плату
KAY-1024). Сначала засылается номер теку-
щего  регистра:  либо #E, либо #F (14 или
15  десятичные),  т.е.  выбирается парал-
лельный  порт.  (В  AY8910 их два). Далее
можно либо записывать, либо считывать ин-
формацию с них. Вообще говоря, непонятно,
почему задан этот вопрос, - у Вас же есть
вполне  наглядный  драйвер  принтера  iS-
DOS'a.

3.  Обращение к верхней памяти происходит
либо  через  ОС iSDOS в виде стандартного
обращения  к электронному диску, либо как
к  электронному дисководу "С" (в TRDOS'e)
через #3d13. Любые другие обращения к 1Mb
памяти лишены практического смысла.

4.  Бит 6 / #7ffd - это управление линией
pin16  DB25  (принтера). В листе-паспорте
ошибка.  Это линия INIT принтера. При ус-
тановке лог. 1 в этот бит, линия INIT пе-
реходит из высокоимпедансного состояния в
состояние  лог.  0. Линия управляется при
помощи  ИМС  Д44 (7406/155ЛИЗ) с открытым
коллектором. Поэтому для получения лог. 1
необходим  внешний резистор на 5V (не ме-
нее 200 Ом). При подключении принтера ре-
зистор  не нужен, т.к. он имеется в самом
принтере.  Бит  7  -  это  бит управления
верхней (выше 256 Kb) памятью.

5. Порт #1ffd:
   Бит 0. При установке в лог. 1 включает
вместо  ПЗУ 0-ю страницу ОЗУ. По сбросу 0
(как,  впрочем, и все остальные биты пор-
тов #1ffd и #7ffd). 0-я страница ОЗУ ста-
новится  доступной  как для записи, так и
для чтения по адресам #0..#3fff.
   Бит  1. Аналогичен по функционированию
и  схемотехническому  решению  биту  6  /
#7ffd,      но      управляет      линией
pin25/XS1/DB25.   В  стандартном  Centro-
nics'e  отсутствует.  (Там  на  этой ноге
DB25  сидит  земля.) Предназначен для уп-
равления более "умной" периферией, нежели
принтер.  Разъём  принтера  в этом случае
используется  аналогично системному разъ-
ёму (по назначению) для подключения внеш-
ней  медленной (сравнительно с системными
устройствами  на  системной шине) перифе-
рии.
   Бит  6. Также аналогичен биту 6/#7ffd.
Управляет  pin'ом N23/DB25/XS1. В класси-
ческом  Centronics'e это тоже земля. Т.е.
ещё один дополнительный выход "наружу" из
компьютера по схеме ОК (общий коллектор).

6.  а)  Бит 7 порта #nnFE отвечает за го-
товность  принтера.  Во  встроенной в ПЗУ
программе, однако, готовность опрашивает-
ся  через  AY8910 (бит 2 порта B - парал-
лельного). Эти биты запараллелены.
   б)    Выражение   "...инициализировать
принтер..."  некорректно.  При  засылании
числа #31 (и последующем его снятии) фор-
мируется  строб.  А занимается этим бит 5
#1ffd. Строб "защёлкивает" данные в прин-
тере. Остальные же биты зависят от векто-
ра состояния машины / программы и опреде-
ляются  программистом,  исходя  из  самой
программы.  В частности, байт #31 в порту
#1ffd  вызывает  следующие установки: 0-я
страница - ОЗУ (бит 0), Д1 - пассивен, Д2
-  турбо  режим включен, Д3 - полуобласти
ПЗУ  в  нормальном порядке, Д4 - включены
старшие 128К ОЗУ нижних 256Кбайт ОЗУ (это
так  в  случае, если бит Д7 / #7ffd в 0 -
лог.);  Д5 - строб в 0; Д6 - пассивен; Д7
- выбор нижних 512К.
   Вариант  объяснения следующий. Если не
сможете  разобраться  в  назначении битов
портов, то пользуйтесь готовыми программ-
ными  продуктами.  Поиск  ошибок  в Ваших
программах  не входит в круг моих обязан-
ностей.

       Несколько общих замечаний.

1.  В готовящейся сейчас к выходу брошюре
"КАY-1024" многие из Ваших вопросов будут
разъяснены. (В разумных пределах). Брошю-
ра  не  будет претендовать на полноту, но
там будет самое необходимое.

2. В столбце цепь (см. схему) разъёма XS1
у  некоторых сигналов перепутаны имена. В
брошюре это будет исправлено.

3.  Рекомендую  программировать  под  ОС.
Причины следующие:
   1) Если Вы попытаетесь написать тради-
ционными (ассемблерными) средствами прог-
рамму  длиной 1Мб, то к моменту дописания
последнего  килобайта,  Вы, скорее всего,
забудете,  что же было в самом первом ки-
лобайте. 1Мб - это необозримое для любого
программиста пространство - имеется в ви-
ду ассемблерное программирование. Необхо-
димы  более крупные смысловые модули. Без
ОС они невозможны.
   2)  Если  есть ОС, то аппаратура может
меняться в архитектурном плане. Представ-
ляю себе Ваш перепуг. Речь же просто идёт
о  назначении  тех же битов порта Centro-
nics'a. Если Вы напишете программу на ас-
семблере, то она будет ЖЁСТКО "привязана"
к аппаратуре, тем более длиной 1 Мб. Если
же  программа  написана под ОС, то вполне
может  получиться и так, что и менять ни-
чего не придётся.
   7.  В "Open letters", если я не ошиба-
юсь,  уже три ответа на этот вопрос. Про-
шивка  досталась "по наследству" от фирмы
СКИМ в 1993 году. Предполагалось, что это
будет теневиком. На данный момент она вы-
полняет чисто технические функции. Выхода
в  этот теневик нет. Для простоты считай-
те,  что  там  вообще  ничего нет. Машина
продаётся без теневика.
   P.S.  С Вашей стороны разумнее было бы
искать  в "Open letters" не ошибки, а по-
лезную   информацию.  Поверьте,  она  там
есть.  И  мне  не  пришлось бы переводить
столько бумаги и времени. Например, ответ
на  вопрос  7  вполне можно было получить
самостоятельно,  воспользовавшись поиском
по  шаблону  (лексикографический поиск) с
ключом "тенев".

   Эта простая - на первый взгляд - мысль
не  столь очевидна. Поэтому представлю её
в развёрнутом виде.
   Если  человек  не разбирается в схемо-
технике  аппаратуры,  то  программировать
"на  уровне  железа" ему категорически не
рекомендуется.  На практике это определя-
ется следующим образом: если этот человек
оказывается  в состоянии определить, нап-
ример,  функции  битов  портов, исходя из
принципиальной  схемы, то он может писать
"под железо", - если же не в состоянии, -
а это, ПО СУТИ, ОЗНАЧАЕТ, ЧТО ОН НЕ ПОНИ-
МАЕТ, КАК РАБОТАЕТ АППАРАТУРА, - то и пи-
сать "под железо" ему нельзя.
   Иначе говоря, принципиальная схема НЕ-
ОБХОДИМА И ДОСТАТОЧНА для человека, пишу-
щего  "под железо". Ни в каких пояснениях
он  не  нуждается. Если требуются поясне-
ния,  то это наводит на неприятные мысли.
И  самым  наилучшим было бы вообще не да-
вать никаких пояснений.
   Кстати,  принципиальная схема прилага-
ется  именно с этой целью. Т.е. принципи-
альная  схема  используется правильно, ПО
НАЗНАЧЕНИЮ, если ею пользуются
   1) для РЕМОНТА
   2)  для  анализа,  написания и отладки
программ  "под  железо", т.е. схема нужна
для  ПОНИМАНИЯ, КАК БУДЕТ РАБОТАТЬ та или
иная программа на УРОВНЕ АППАРАТУРЫ.
   3)  для  разработки  периферийных уст-
ройств.
   Теперь давайте подумаем о том, что бу-
дет  происходить, если человек, НЕ РАЗБИ-
РАЮЩИЙСЯ В АППАРАТУРЕ, будет "под железо"
писать  софт,  - воспользовавшись, напри-
мер,  таблицей  портов  (назначения бит),
либо чьими-то советами (например, моими),
либо чьими-то готовыми программными фраг-
ментами.
   Если аппаратура классическая, традици-
онная,  хорошо "обкатанная" на уровне же-
леза,  то,  скорее  всего  его  программы
действительно будут работать. В результа-
те  у человека появляется ЛОЖНОЕ ОЩУЩЕНИЕ
ПОНИМАНИЯ,  ему кажется, что он ЗНАЕТ. На
самом же деле он просто пользуется хорошо
проверенными   "кухонными  рецептами",  -
стандартными   решениями,   наработанными
профессионалами.  Если  хоть что-то, хоть
незначительно меняется, и КУХОННЫЕ РЕЦЕП-
ТЫ уже не действуют, то он начинает чувс-
твовать себя неуютно. Действительно, кому
приятно столкнуться лоб в лоб с собствен-
ной  глупостью?  Вот  тут-то и начитаются
вопли о "кривизне" аппаратуры, требование
разъяснений  (а разъяснения - это полуме-
ра,  которая опять же приводит к полузна-
нию,  т.к.  пониманию  того, как работает
аппаратура,  ПЯТЬ  ЛЕТ учат в институте).
Но это цветочки. Ягодки появляются тогда,
когда   человек  начинает  распространять
свои глючные программы. Первым делом шиш-
ки  летят в производителя компов (хорошо,
если  шишки, а то могут быть и тухлые яй-
ца). Но это полбеды - можно как-то отреа-
гировать  (прокомментировать) либо просто
проигнорировать. Самое страшное начинает-
ся  дальше.  Пользователи  где-то узнают,
что какой-то глючок в какой-то программке
устраняется  посредством откусывания ноги
у  ИМС  или  перепайкой  проводка или ещё
чем-то  в этом роде. И пользователи начи-
нают собственными руками УНИЧТОЖАТЬ комп-
ьютеры.  Схема  при этом, ИСПОЛЬЗУЕМАЯ НЕ
ПО НАЗНАЧЕНИЮ, становится ОПАСНОЙ.
   К  сожалению,  те кто пишет программы,
плохо  понимают, что начиная их распрост-
ранение,  они  берут на себя ОПРЕДЕЛЁННУЮ
ОТВЕТСТВЕННОСТЬ.

                                  (c)Nemo
_________________________________________

       Комментарии фирмы (c)iSDOS

1.  По  поводу  драйверов  ide+3, ide+5 и
инструкции.  Инструкция несколько устаре-
ла. Уже готов новый, исправленный вариант
в  виде файла. Осталось сверстать макет и
распечатать.  На  данный момент диск пос-
тавляется  с драйвером ide+5.blk, уже ус-
тановленным в систему. Именно из-за этого
драйвер ide+3 "не захотел" грузиться. Не-
куда  уже было. Вы можете его установить,
предварительно  сняв ide+5, или, хотя бы,
освободив  несколько  устройств от A до H
программой  dev. Bat-файл mem_tu+3 удалён
с  диска,  так как новая версия программы
ide_tune.com  в  нём более не нуждается и
может  запускаться  без ключей и парамет-
ров.

2.  Насчёт  парковки головок. Винчестеры,
поставляемые фирмами (c)Nemo и (c)iSDOS в
полном  комплекте  с контроллером и ПО, в
этом  не нуждаются. Хотя можете использо-
вать команду "STAND BY" перед выключением
питания.   Файл  standby.com  в  каталоге
S:SERVICE\ANALECTA\.  Вызывается  из меню
пользователя.  Что  же  до старых моделей
винчестеров,  то, боюсь тут необходим ин-
дивидуальный  подход.  Вы  же  даже марку
винчестера не указали.

3.  "...в  описании ISDOS говорилось, что
если  программа  виснет или сбрасывается,
то  проблема кроется в железе (хотя непо-
нятно,  что нельзя было как-то по-другому
об  этом известить? Право, это уже скорее
вопрос к разработчикам ISDOS)..."

   - Не слишком ли высокие у Вас требова-
ния  к ПО? Как, по-Вашему, программа, за-
пущенная  на неверно собранном или неисп-
равном  оборудовании сможет ПРАВИЛЬНО ра-
ботать  и давать советы по сборке железа?
Это, примерно, как требовать от оперируе-
мого  больного руководить ведением опера-
ции. Компьютеры, из которых валит дым, но
при  этом  они  глухим голосом из дешёвых
динамиков продолжают бесстрастно сообщать
о неполадках в собственной системе, быва-
ют  только в глупых фильмах для маленьких
детей.

4.  "Как  в  KAY1024  устроена  память? А
именно как происходит обращение к верхней
памяти?   (желателен  пример  на  assemb-
ler'e)."

   -  Насчёт примеров - это вопрос, явно,
не  к  фирме (c)Nemo, а к фирме (c)iSDOS.
Мы можем предложить Вам, а также всем же-
лающим,  исходные тексты драйверов элект-
ронного  диска, печати, винчестера и мно-
гое  другое. Цены указаны в файле SrcPri-
ce.txt.  Драйвер мегабайтного Кая для iS-
DOS Classic edkay1mb.asm стоит всего лишь
17 рублей. Специальные примеры на заказ и
с комментариями также возможны, но раза в
3  дороже, поскольку более никому не нуж-
ны.

                       (c)iSDOS, 18.12.99




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

Открытые письма Nemo №2.1

Открытые письма Nemo №2.10

Открытые письма Nemo №2.11

Открытые письма Nemo №2.2

Открытые письма Nemo №2.3

Открытые письма Nemo №2.4

Открытые письма Nemo №2.5

Открытые письма Nemo №2.6

Открытые письма Nemo №2.7

Открытые письма Nemo №2.8

Открытые письма Nemo №2.9


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

Похожие статьи:
Rants & Raves - Вся правда об операции "Зю".
Party - Millennium'1902 graphics compo review.
IS-DOS - "IS-DOS - начинающим" No 3

В этот день...   4 декабря