Open Letters #01
20 июня 1999

Ответ на письмо №78.

Ответ на письмо №78.
665601                           09.09.99

           Здравствуйте, Nemo!

   Очень  меня порадовал RAM-диск, но та-
кое  вмешательство  в  ДОС,  по-моему, до
добра  не  доведёт.  Кроме  того, fix под
Pentagon  _НЕ_РАБОТАЕТ_  на kay1024. Это,
of  coz, Ваше дело, но, по-моему, если уж
делать  NoWait,  то  и int'ы можно подог-
нать...  Более того, int, вообще, плавает
невесть  где  - ни одна из дем, в которых
на  Scorp'e  бордюр  стоит  там, где надо
(AGONY, Satisfaction, etc...) не работает
правильно  на  KAY. В связи с этим у меня
риторический вопрос: _НЕУЖЕЛИ_ так трудно
сделать нормальный синхрогенератор? Кроме
того,  есть  ещё  одна беда: я _нигде_ не
нашёл  описания  работы с верхней памятью
(>256Кб). Мне, конечно, не трудно глянуть
на  схему,  но  всё  же...  Бывают ведь и
программисты,  которые в железе -0. Кроме
того:  Centronix  на  AY  - это, конечно,
просто  и  удобно. Но вот я, пока не пос-
мотрел  на  схему и не поставил впоследс-
твии  AY,  никак не мог понять, почему же
это он не печатает :(
   Поэтому,  прошу  мне  в  письме (марки
прилагаются) написать "по полочкам" о:

 *)   сигналах  (?)  Q8,  AUTO,  a18  (на
#7FFD), a17 (на #1FFD), ROMS, C1
 *) управлении верхней памятью (это жела-
тельно  включить в документацию по плате,
если хотите, чтобы программисты поддержи-
вали 1024кб)
 *)   Назначении  контактов  на  заглушке
разъёма RGB

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



665601                           09.09.99

		Уважаемый ............. !

   Извиняюсь  за задержку с ответом. Воп-
росы, понятые в Вашем письме, требуют, на
мой  взгляд, - больших и пространных ком-
ментариев. Итак:

1.  "...вмешательство в ДОС, по-моему, до
добра не доведёт". Во-первых, в теле ДОС,
- 16Кбайтная страница ПЗУ, - имеется сво-
бодное место, - и его можно использовать,
- что и было сделано. Во-вторых, различия
в  имеющихся версиях прошивок ПЗУ TRDOS'a
отличаются  между  собой не менее сущест-
венно, чем TRDOS ПЗУ-прошивка KAY-1024 от
каждой из них. Втретьих, стыковка с ОС'ью
(и   винчестером,   соответственно)  осу-
ществлённая    таким   способом,   (через
RAM-диск) НАИМЕНЕЕ затрагивает, собствен-
но,  само  тело TRDOS'a. (Если сравнить с
МОА-TRDOS'ом,  то  от  собственно TRDOS'a
там   камня  на  камне  не  осталось.)  В
четвёртых,  самое  главное,  такой способ
наращивания  не противоречит ни идеологии
TRDOS'a, ни идеологии ISDOS'a. А это зна-
чит,  что  системы  могут  использоваться
совместно, - взаимодополняя и повышая эф-
фективность друг друга.

2.  Режим "NOWAIT/3.5МГц". При реализации
этого  режима  НЕ СТАВИЛАСЬ ЦЕЛЬ ДОБИТЬСЯ
СОВМЕСТИМОСТИ С PENTAGON'ом!!! Такое заб-
луждение,  широко  распространённое среди
пользователей,  обусловлено  чересчур по-
верхностным   сопоставлением  архитектур.
Считается  (и  это  глупость!),  что если
есть WAIT, - то это Scorp (или KAY, - или
ещё какая-нибудь другая машина), если нет
- это PENTAGON. Всё же остальное, по мне-
нию  пользователей,  малосущественно. Ну,
некоторые  ещё, как Вы, например, говорят
про  INT.  На  самом деле существует ещё,
как  минимум,  ТРИ СУЩЕСТВЕННЫХ отличия в
архитектуре  PENTAGON/KAY.  (Точнее  ска-
зать, в микроархитектуре, - т.к. в основ-
ном,  это касается подсистемы синхрониза-
ции  и особенностей видеопроцессора.) Это
означает, что даже если сделать INT как в
PENTAGON'e,  то демы (или fix'ы) на KAY'e
ВСЁ РАВНО НЕ ПОЙДУТ. (А если и пойдут, то
не все, и с потерей части видеоэффектов.)
Давно пора понять, что когда говорим "де-
мо",  подразумеваем PENTAGON, когда гово-
рим  PENTAGON,  подразумеваем "демо". Это
равносильные  утверждения. Для того чтобы
шли  демы,  необходимо  делать  PENTAGON,
ОДИН  К ОДНОМУ, - со всеми его глупостями
и  ограничениями.  На  PENTAGON'е,  кроме
дем,  ничего  другого  и не сделаешь. Эта
машина,  разработанная  в  1991-92  г.г.,
имела  одно  существенное отличие от всех
прочих  Spectrum'ов.  А именно - ЛИНЕЙНЫЙ
ПРОЦЕССОР.  (Это отличает, кстати, PENTA-
GON и от фирменного Speccy.) На языке Эл-
лочкилюдоедочки  пользователей  -  это NO
WAIT.  Чтобы подробнее объяснить, что та-
кое  ЛИНЕЙНЫЙ ПРОЦЕССОР, дам ТОЧНОЕ опре-
деление.  Пусть каким-либо (ЛЮБЫМ, ПРОИЗ-
ВОЛЬНЫМ!)  образом  выделяется два класса
команд: класс A и класс В. (Классы команд
могут  быть  выбраны, например, - по фазе
видеопроцессора  на момент их выполнения,
- по расположению в страницах ОЗУ (именно
в этом смысле процессор Speccy НЕЛИНЕЕН),
- по типу команд, - и т.д. и т.п. Обозна-
чим  время  выполнения  команд через Т, -
тогда для линейного процессора выполняет-
ся равенство:
   Т(А+В)=Т(А)+Т(В). Говоря очень просто,
время выполнения любой команды ни от чего
не  зависит  и всегда одинаково (констан-
та).
   Это свойство очень важно для компьюте-
ра. Существует целый класс задач - "зада-
чи  реального времени". (Пример: формиро-
вание  бесконечной последовательности пе-
риодических импульсов с ОПРЕДЕЛЁННОЙ час-
тотой (периодом повторения) и управляемой
скважностью. Это задача, как нетрудно до-
гадаться,  напрямую  связана  с  каналами
связи (в частности, с моделями БЕЗ ТАЙМЕ-
РА  и  ПРЕРЫВАНИЙ, т.е. ОЧЕНЬ ПРОСТЫМИ, а
значит, ОЧЕНЬ ДЕШЁВЫМИ).
   ДЕМО-мейкинг  это  тоже  одна из задач
РЕАЛЬНОГО  ВРЕМЕНИ. (Одна из МНОГИХ, но в
силу  убогости  PENTAGONA о существовании
других задач публика и не подозревает).
   Так  уж  получилось,  что  DEMO-making
развился  именно  на PENTAGON'е, т.к. там
выполняется необходимое для демо условие:
ЛИНЕЙНОСТЬ  ПРОЦЕССОРА. Всё бы ничего, но
для  программной  совместимости демопрог-
рамм другим НЕОБХОДИМЫМ условием является
ИДЕНТИЧНОСТЬ  (не похожесть, не аналогич-
ность,  а  именно ИДЕНТИЧНОСТЬ) ВИДЕОПРО-
ЦЕССОРА  и  СИСТЕМЫ  СИНХРОНИЗАЦИИ  (т.е.
микроархитектуры машины). И что же мы ви-
дим в видеопроцессоре PENTAGON'а? А видим
мы  кривизну. 320 строк в кадре - что это
за  дурость? По телестандарту число строк
чередуется    (чересстрочная   развёртка)
313/312  строк, но уж ни в коем случае не
316, либо 320, либо 325. Мелочь, а прият-
но:  -  если хочется сделать PAL (или СЕ-
КАМ)  кодер,  то будь любезен, сделай его
КРИВЫМ (из-за чего он не пойдёт ни на од-
ной  другой машине, - или пойдёт, но КРИ-
ВО, т.к. сама машина КРИВАЯ. В видеокаме-
ру  это, например, точно не покатит. Т.е.
примочка  -  только под PENTAGON. КРИВАЯ,
потому  что НЕ СООТВЕТСТВУЕТ ТЕЛЕСТАНДАР-
ТУ.  Можно, конечно, считать, что это те-
лестандарт  КРИВОЙ, а видеопроцессор PEN-
TAGON'а  -  прямой. Но это не так по двум
причинам. PENTAGON'ов на рынке, максимум,
десятки  тысяч,  а телевизоров, как мини-
мум,  десятки МИЛЛИОНОВ, - это во-первых.
А  вовторых, Spectrum делался под телеви-
зор,  а не НАОБОРОТ. Плясать надо от печ-
ки.  Ни  один разработчик hard'a, находя-
щийся  в  своём  уме и твёрдой памяти, не
станет  делать количество строк, отличное
от  312/313 (обычно делают 312 - так про-
ще).  Если  же  человек не разработчик, а
коммерсант,  то он, может, конечно, и 320
строк влепить. Это называется "заработать
на  конъюнктуре"  (-  птичий язык). А что
будет потом? Да хоть суп с котом.

3.  Теперь  относительно INT'a. (По этому
поводу  есть очень интересное письмо: см.
приложение  ниже.  Письмо  было  передано
фирме  (c)Nemo редакцией журнала ZX-F для
рецензии  (для сторонней оценки). В конце
концов, ZX-F решил его не публиковать).
   Видимо,  придётся ещё раз повториться.
С  точки  зрения фирмы (c)Nemo, видеопро-
цессор  PENTAGON'а не является стандартом
в  Spectrum'e.  Стандарт  - это ТЕЛЕСТАН-
ДАРТ.  А Pentagon - это ОТКЛОНЕНИЕ от те-
лестандарта, - и весьма существенное. По-
этому  "...плавает не весть где.." - это,
опять  же,  следствие принятия Pentagon'a
за  эталон.  "...Нормальный синхрогенера-
тор..." - это что, опять же, как в PENTA-
GON'е? Нормальный "синхрогенератор" (пра-
вильнее  видеопроцессор)  - это видеопро-
цессор,  соответствующий телестандарту, а
не  PENTAGON'у,  Scorpion'y,  ATM, Compo-
sit'y, Робику, Компакту, Контакту, Profi,
ZX-next'y, и мало ли ещё чему. Особеннос-
ти видеопроцессоров этих машин - это ОТК-
ЛОНЕНИЯ  ОТ ТЕЛЕСТАНДАРТА. Ни одна из них
не  является эталоном, но приближениями к
эталону.  Степень отклонения - это и есть
степень  "кривизны". В том числе и ВЗАИМ-
НОЙ.
   В INT'E существенны два момента:
 1) привязка INT'a к фазе видеопроцессора
(процессора развёртки TV-изображения),
 2) длительность INT'a. Точнее три момен-
та:
 3) синхронизация INT'a относительно про-
цессора. Если фронт INT'a (переход от 0 к
1,  dx=dx) "гуляет" (дрожит) около фронта
последнего   тактового  периода  (периода
тактирования)  команды, то ошибка дискре-
тизации  (+/-1 такт процессора) обеспече-
на.  Независимо  от того, сколько нулей в
INT'e, - хоть пять - хоть двадцать пять.
   Привязка INT'a к фазе видеопроцессора,
вообще  говоря,  произвольна, т.е. разра-
ботчик  может  выбрать  её произвольно. В
KAY'e  INT "привязан" к фазе видеопроцес-
сора  через  сигнал КС/ (активный переход
от 0 к 1, т.е. dx). К такту/циклу/команде
процессора  через  сигнал *М1/ (звёздочка
означает,  что  сигнал  выведен на шину).
Т.е. INT стробируется *M1/. (Это позволя-
ет избежать попадания фронта (dx) INT'a в
область  опроса  прерываний  процессором,
чем устраняется неопределённость +/-1).
   Таким образом, INT "привязан" к началу
кадра, а не к его концу. Под началом кад-
ра  понимается  завершение обратного хода
развёртки  кадров:  КС/=dx,  т.е. переход
КС/  из  0  в  1. INT "привязан" к началу
кадра, т.е. концу обратного хода кадровой
развёртки.  Вероятно,  можно было бы сде-
лать и наоборот. Но теперь меняться ниче-
го  уже  не будет. Это стандарт для KAY'я
(т.к. телестандарт не оговаривает положе-
ния INT'a).
   Теперь по длительности INT'a. В модели
v1.3 (95г) была применена схема из ZX-Ре-
вю (номер и страница неизвестны), до это-
го  в  KAY'ах,  -  как и в прочих машинах
Spectrum'a применялась RCцепочка. Привожу
схему:
          D53: 555ИР16
         6┌───┬───┐
  KC/─────oPE │ RG│
         9│   │   │
 *M1/─────C  │   │13
         8│   │ Q0├───X
  +5V──┬──┤EO │   │
       │ 1│   │   │12
       ■──┤SI │ Q1├───X
       │ 2├───┤   │
       ■──┤0  │   │11
       │ 3│   │ Q2├───X
   ┌───┼──┤1  │   │     680
   │   │ 4│   │   │10 ┌────┐
   ├───┼──┤2  │ Q3├───┤    ├── *INT/
  ─┴─  │ 5│   │   │   └────┘
   ─   └──┤3  │   │
          └───┴───┘  выведено на шину (*)

   Из  схемы видно, что INT/ НЕ СРАЗУ ак-
тивизируется  (переходит  в логический 0)
после  перехода КС/ в 1. Это событие про-
исходит  только  в  цикле М1/ (извлечение
КОП'а) с переходом линии/сигнала *М1/ CPU
в  лог. 0. Как уже говорилось, это позво-
ляет  устранить погрешность дискретизации
+/-1  такт.  Далее, в конце команды (пос-
ледний такт последнего цикла, а именно по
его фронту, - т.е. переходу CLOC'a CPU из
0  в  1:*CLOCK=dx)  происходит  опрос ли-
нии/сигнала INT/ процессором и, либо ини-
циируется  прерывание (с выработкой подт-
верждения на линии/сигнале М1), либо пре-
рывания игнорируются, если они запрещены.
   Далее,  если отрабатывается первая ко-
манда из ячейки, куда переадресовало про-
цессор прерывание, то INT/ снимается сра-
зу же после начала цикла извлечения КОП'а
(третий  фронт  (dx) сигнала М1 переводит
линию/сигнал  INT/  в  лог.  1), и запрос
прерывания  снимается. В результате полу-
чается,  что  "схватить"  два раза подряд
INT/  процессор не может, - т.е. длитель-
ность  INT'a  ОПТИМАЛЬНА.  (Хочу обратить
внимание, что при этом она ПРОИЗВОЛЬНА, -
и  нет смысла считать нули в длительности
INT'a,  -  он СИНХРОНЕН ПРОЦЕССОРУ). Дея-
тель, который опубликовал это схемное ре-
шение в ZX-Ревю, уподобился вороне, кото-
рая  увидела блестящий предмет и, схватив
его  клювом  (не  головой!), унесла его в
гнездо.  Просто  потому  что он блестящий
(независимо  от того, что это за предмет,
-  обручальное кольцо на подоконнике, за-
пал   от   гранаты   или  просто  цветная
блёстка).  Что  такое он нашёл, зачем это
надо  и чем замечательно, он так и не по-
нял.
   Хотелось  бы обсудить INT/ Pentagon'a.
Если  забыть  про фазу INT'a (а её мы уже
обсудили),  то INT - это источник (калиб-
рованный!) времени. Причём, эта его ипос-
тась  содержится  не только в его периоде
(что  тривиально), но и в ДЛИТЕЛЬНОСТИ. В
СИНХРОННОЙ   схемотехнике  бывает  только
ОДИН  источник  времени  - это кварц, - и
порождаемая  им  тактовая  последователь-
ность.  RC-цепочка  - это тривиальный ис-
точник   ВРЕМЕНИ.  И,  следует  добавить,
очень  плохой.  Объясняю почему. Длитель-
ность  временного интервала, формируемого
одновибратором  на  RC-цепи, определяется
следующим соотношением:
   Т(сек)=k*R*C=k*t; (t=R*C) В этой зави-
симости (функции, формуле) три (ТРИ!) ис-
точника  погрешности: k - зависит от нап-
ряжения питания (более чем пропорциональ-
но); C - зависит от температуры и от вре-
мени  (т.е. стареет); R - зависит от вре-
мени  (тоже  стареет).  И,  при  всём при
этом,   погрешность   дискретизации  +/-1
такт.  Когда-то,  лет  этак пять назад, в
ремонт  (по  линии  "Блеска") поступали и
Pentagon'ы. В них были странные регулято-
ры  (на переменном резисторе) INT'a. Сна-
чала было трудно понять, зачем это сдела-
но. Потом дошло. Пользователи таким обра-
зом  "ловили" демы на своих компах. Как в
радиоприёмнике  - покрутил - и настроился
на нужную радиостанцию. И это в КОМПЬЮТЕ-
РЕ! Суть в том, что в PENTAGON'е НЕТ и НЕ
МОЖЕТ быть СТАНДАРТНОГО INT'а, - т.е. ВСЕ
Pentagon'ы  взаимно  кривы.  А если они в
какой-то момент времени взаимно прямы, то
это не более чем кратковременная удача, -
INT-то  уезжает со временем! Как же может
уезжать  синхронный  (на  RC-цепи) INT? А
очень  просто.  Постоянные  резисторы, на
самом  деле,  отнюдь не постоянны на ДЛИ-
ТЕЛЬНЫХ отрезках времени. В "Массовой ра-
диобиблиотеке"  или  в журнале "Радио" Вы
этого, конечно, не вычитаете. Здесь нужны
справочники ГОССТАНДАРТА. Даже в условиях
ХРАНЕНИЯ   (т.е.  в  условиях  отсутствия
электрических/механических/температурных
нагрузок)  уход номинала составляет за 15
лет до 10%, а для некоторых резисторов, и
30%!  Не  говоря  уже о вышеупоминавшейся
зависимости  от  температуры  (до 50% для
некоторых  типов  конденсаторов в РАБОЧЕМ
диапазоне  температур) и напряжения пита-
ния  (около  5%  -  допуск по питанию для
ТТЛ-серий).  В  результате  пользователям
Pentagon'ов  приходится с пеной у рта до-
казывать, что их машина ПРЯМАЯ, а все ос-
тальные  -  кривые,  - и это только среди
пользователей Pentagon'а! Вам это надо? А
что  такое 10% для INT'а? Это значит, что
там,  где  он  был 9мкс, он стал 10мкс. И
программная  совместимость по демам поле-
тела  коту под хвост. Необходима АНАЛОГО-
ВАЯ  ПОДСТРОЙКА  - переменный резистор на
передней панели! Взошло солнышко, пригре-
ло компьютер, - он работает так, а вечер-
ком, когда темно - этак. Покрутили резис-
тор - и всё путём!

   Подведём  итоги. Вряд ли pentagon'овс-
кий   "...нормальный  синхрогенератор..."
можно назвать НОРМАЛЬНЫМ. Потому как НОР-
МЫ,  СТАНДАРТА  не  существует.  А  вот в
KAY-e  он сделан как раз нормальным. Т.е.
ВСЕ машины, как близнецы-братья, ОДИНАКО-
ВЫ. Другое дело, что INT формируется ИНА-
ЧЕ, чем в Pentagon'е.
   Полезно  подумать и на такую тему, как
TURBO-режим.   При   схеме  формирования,
СИНХРОННОЙ по циклам процессора, т.е. как
в  KAY'е,  на  555ИР16,  - программа НЕ В
СОСТОЯНИИ   отличить  длительность  INT'a
между  режимами  TURBO/NORMAL! Т.е. прог-
раммисту,  при  обработке  INT'а, незачем
думать,  как его программа будет работать
в TURBO-режиме, - она будет работать ТОЧ-
НО  ТАКЖЕ, как и в нормальном режиме. Это
очень важно для TURBO-машин.
   "В  связи  с  этим у меня риторический
вопрос..." - Неужели необходимо повторять
и  ТИРАЖИРОВАТЬ  глупость,  только по той
причине, что она ОБЩЕПРИНЯТА?

4. "Описание работы с верхней памятью". А
зачем  Вам  это описание? Поупражняться в
программировании? Разве что... Есть очень
большое сомнение, что можно традиционными
Spectrum'овскими  методами (технологиями,
концепциями,  подходами)  эффективно  за-
действовать  1Мбайт ОЗУ. Т.е. вероятность
получения  коммерческого софта (т.е. того
софта, который делает машину полезной для
пользователя)  стремится  к  нулю. Широко
распространено  рассуждение (в стиле Пар-
кинсона),  что  программный продукт стре-
мится  занять  всю  свободную  память,  в
Spectrum'e  не совсем соответствует дейс-
твительности.  Если уже сейчас коммерчес-
кие программы под 128Кб-ю машину создают-
ся ГОДАМИ, то сколько времени потребуется
на  задействование 1Мбайта?! Речь не идёт
о  способах  занять  всю  память "чем-ни-
будь",  -  это  труда не составляет. Речь
идёт об ЭФФЕКТИВНОМ использовании.
   Поэтому  в KAY'e и 1Мб не поставляется
"голышом",  -  как мать родила, - а в нём
задана  структура  над  памятью  ОЗУ - а,
именно,  квазидисковод  "С". Если Вы туда
влезете, то она полетит коту под хвост. И
ещё  не факт, что эффективность использо-
вания  "впрямую"  1Мбайта окажется больше
(и полезнее для пользователя), чем квази-
дисковод.
   По-видимому,  эффективно  использовать
такие  объёмы ОЗУ можно только под УПРАВ-
ЛЕНИЕМ ОПЕРАЦИОННОЙ СИСТЕМЫ. А если рабо-
тать  с  ОС'ью,  то информация о РЕАЛЬНОМ
ФИЗИЧЕСКОМ УСТРОЙСТВЕ (архитектуре) компа
НЕНУЖНА,  т.к.  обращения  идут на уровне
макрокоманд  ОС'и, т.е. абстрагировано от
реального  hard'a.  Это  широко известный
IBM-овский  подход.  Если у Вас есть аль-
тернативный  (на достаточно глубоком кон-
цептуальном  уровне), то не томите, - по-
делитесь,  -  очень  любопытно. Мне такие
подходы неизвестны. Думаю, те, кто в сос-
тоянии создать что-то действительно стоя-
щее, коммерческое, полезное всем, всё-та-
ки  в  состоянии заглянуть в схему. Или в
паспорт  машины,  где в таблице 1 указаны
два  бита  а17  и а18 (литеры прописные).
Для справки: в квазидисководе старшинство
битов  обратное,  т.е.  старшим  является
а17.

5.  "По полочкам". Необходимо сделать об-
щее  замечание о том, что, действительно,
указанные  Вами  "белые пятна" в описании
машины существуют. В "Руководстве пользо-
вателя",  которое сейчас подготавливается
к печати, эти вопросы будут освещены. Те-
перь по сигналам.

   Q8.  Сигнал, внештатный для интерфейса
Centronics. Иначе говоря, во всех машинах
по  этой линии поступает земля (GND). Это
удобно  с  технологической  точки зрения.
Легче распаивать/разводить плоский интер-
фейсный   кабель  с  парным  чередованием
"Сигнал  данных/Земля". Поэтому, если его
задействовать  в  hard'e,  то на РС-ках и
omig'ах  работать  не  будет. (Т.е. будет
невозможно "программно" добраться до это-
го сигнала). В остальном в нём нет ничего
особенного.  Это ОК (открытый коллектор).
Активное  состояние,  - "подключен к зем-
ле",  т.е.  лог.  0. Для установки лог. 0
необходимо установить бит *D1 порта #1FFD
в лог. 1. По сбросу этот сигнал находится
в  состоянии  высокого импеданса, и чтобы
получить  лог.  1,  во внешнем устройстве
должен быть резистор на +5V. Т.е. обычная
специфика работы со схемой на ОК.
   AUTO.  На самом деле, это INIT CENTRO-
NICS'а.  Просто при обозначении имён сиг-
налов  разъёма  XS1  они были перепутаны.
Штатный  сигнал  centronics'a. Принтер по
нему  инициализируется  (принимает исход-
ное,  оговоренное в паспорте, состояние).
При  подключении  других  устройств может
быть использован аналогично сигналу Q8, -
бит *D6 порта #7FFD.
   а18,  а17  -  их уже обсуждали. (Опять
же, смотри табл. 1 паспорта машины).
   ROMS  -  сигнал  "перевёртывания" ПЗУ.
При  установке  в  лог.  1 бита *D3 порта
#1FFD  теневая область меняется местами с
Basic  128,  а TRDOS меняется с BASIC 48.
(Либо наоборот, в зависимости от перемыч-
ки (jumper) JP10,11,12).
   C1  - сигнал, недоступный для програм-
миста.  Вряд  ли представляет собой пред-
мет,  достойный  обсуждения.  При  помощи
этого  сигнала блокируется порт джойстика
(аппаратно!)  #1F  при  обращении к музы-
кальному   процессору  на  чтение  (адрес
#FFFD).  В  противном случае они бы конф-
ликтовали на шине.

5.1  "Управление верхней памятью". Сомне-
ваюсь,  что  даже  в том случае, если это
будет  включено  в документацию, програм-
мисты    смогут    чем-либо    поддержать
KAY-1024. Ещё раз повторюсь, что без ОС'и
это,  на  мой взгляд, невозможно. А когда
есть ОС'ь - это НЕНУЖНО.

5.2  "Разъём RGB". Разъём RGB, вообще го-
воря,  в пояснениях не нуждается. Он сде-
лан  для  большей  гибкости в подключении
платы  к устройству отображения (как пра-
вило,  телевизор).  Исходя  из имеющегося
опыта,   платы  больше  всего  "ковыряют"
именно  в этом месте. Поэтому предпринята
попытка  как-то  уйти от паяльника в про-
цессе подключения TV-приёмника. Те, кто в
состоянии  воспользоваться этим разъёмом,
в  пояснениях  не  нуждаются. А тем, кому
нужны  пояснения,  - лучше туда не лезть.
Т.е.  это технологический разъём для спе-
циалистов.  На архитектуру (т.е. на прог-
раммистскую  модель)  машины  он никак не
влияет.
   В  заключение хотел бы выразить благо-
дарность  за  содержательные вопросы. Ду-
маю,  что пояснения окажутся полезными, -
и не только Вам.

                                  (c)Nemo



               ПРИЛОЖЕНИЕ

   Здравствуйте,    уважаемая    редакция
ZXFormat.  Пишет  вам из г. Новочеркасска
Hacker  <Grey>  (Грэй),  хотя в настоящее
время я больше Musicmaker и coder, нежели
HaCKer.  Я являюсь членом самой большой и
известной в городе Ростове-на-Дону группы
Omega  Hackers  Group.  Возможно, кому-то
встречались  мои работы: Omega Commander,
демо  версия  игры "Путь к Земле" или мои
старые  хакерские работы за подписью "Бо-
логов Григорий from *OHG*". Не буду долго
распинаться,  просто скажу, что мне очень
нравится  ZX-Format,  и не только внешне,
только хотелось бы, чтобы раздел "Железо"
больше  соответствовал  своему названию -
было больше схем.
   Я надеюсь, что моё письмо прольёт нем-
ного  света  на  старую  проблему (или НЕ
проблему) Pentagon-овских прерываний. Ещё
когда  у  меня  были ATM turbo и Спарк, я
смирился  с  тем, что Российский Spectrum
это  Pentagon 128. Сейчас у меня Pentagon
3+,  я  поставил себе очередной сдвоенный
переключатель.  Одной стороной переключа-
ются  прерывания  с  фирменных  на Penta-
gon-овские  на  ЛН1,  а другой замыкаю 15
ножку  счётчика ДН6 (по схеме Pent 3+) на
землю, что аналогично 2 и 3/D11 на Penta-
gone  128,  тем  самым  получаю полностью
Пентагоновские прерывания.
   "В чём тут дело?" - спросите вы. А де-
ло  в том, что у Фирменного Speccy кадро-
вая  развёртка составляет 312 строк, а на
Pentagon  128 почему-то 320. Поэтому фир-
менный  speccy  показывает 69888 тактов в
прерывании, а Pent - 71680 (по тесту в JC
4.01).  Но тут проявляет себя одна ошибка
(или  неточность)  в  некоторых вариантах
схемы Pentagon 128. Это входной конденса-
тор  С6 на прерывании. Если он равен 22н,
то тест покажет уже 71649 тактов. (В иде-
але  С6 должен быть 6н8). Вроде бы ничего
страшного  и  нет  в  потере 31 такта и в
том,  что  длительность  INT-a стала рав-
няться  двум  (по  тесту  ТЕСТ 128). Но в
этом  случае  обеспечен 100%-ий повторный
захват  прерываний (Даже без TURBO). Но и
это ещё не самое страшное.
   Дело  в  том,  что многие кодеры стали
использовать  в  своих  muLticoLor  -ах и
бордюрных  эффектах автоподстройку, опре-
деляя  Pentagon это или нет. Учитывая вы-
шесказанное, нужно делать поправку +/- 60
тактов  (встречались  машины,  на которых
С6=47н,  что  не мешает multicoloRить, но
заваливает  проверки). Многие кодеры при-
нимают свои машины за идеал, что не явля-
ется фактом (т.к. на большинстве Pentagon
128 C6=22н).
   Этим  грешит демонстрация с ENLIGHT 96
- PRSG 128, отказываясь мультиколорить на
правильных   пентагоновских  прерываниях,
однако,  если  на время инсталляции вклю-
чить  TURBO, а потом выключить - muLtico-
LoRiT, как миленькая.
   Сразу  хочу  сказать,  что на Peнтagon
128  невозможно получить фирменные преры-
вания. Даже если формировать INT по спаду
кадрового синхроимпульса, собрав схему на
конденсаторе  и  резисторах, придётся ещё
вешать дерево логики на 2 и 3 выводы D11,
сужая  развёртку  до 312 строк, иначе эф-
фекты, сделанные под псевдофирменные пре-
рывания  не будут работать ни на нормаль-
ном  Pent-e,  ни  на нормальных фирменных
прерываниях.

   В заключение хочу подвести ИТОГИ всего
вышесказанного:
   1.  Практически на любой машине можно,
замкнув  сброс  счётчика  строк на массу,
получить пентагоновские прерывания.
   2.  С6  на  схеме  Pentagon 128 должен
быть  6н8, а не 22н, на Pentagon-e должно
быть  71680  тактов  320*224=71680,  а не
71649. На фирменном Speccy - 69888 тактов
312*224=69888;  224 - количество тактов в
строке развёртки.
   3.  При  автоподстройке под прерывания
учитывать  погрешность  +/-60  тактов или
даже  больше (из-за разного значения кон-
денсатора С6).
   4. muLticoLor-ы под фирменные прерыва-
ния  нельзя  сделать  на  Pentagon  128 с
псевдофирменными прерываниями.

   Я  надеюсь, что моё письмо поможет ра-
зобраться  в  этом вопросе тем, кто всего
этого ещё не знает.
   По  моему методу доведено до ума 3 ле-
вых (с точки зрения Pentagon 128) машины.
На  них теперь в одном положении переклю-
чателя отлично работают INSULT, PSG wins,
SATISFACTION, а в другом абсолютно не ко-
сят  SHOCK,  ECHOLOGY (естественно, кроме
бордюра  под  раздельные  поля  памяти  в
SHOCKe)

                   14.12.06 Grey OF *OHG*

P.S.  Огромнейшая просьба, кто знает, как
избавиться  от чёрточек в TURBO режиме по
схеме  от В.М.Г. или из ON-LINE N2, расс-
кажите  об этом на страницах ZF или напи-
шите по адресу: 346421 Ростовская обл. г.
Новочеркасск  ул.  Буденновская 237/2 кв.
21 Бологову Г.А.

P.P.S. Заранее благодарю редакцию ZX-For-
mat-a и надеюсь, что моё письмо опублику-
ют в ближайших номерах ZF.



СПРАВКА

Тема   PENTAGON'ов  обсуждалась  также  в
письмах N 34 и 43.




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

Вводная статья к сборнику ответов на письма пользователей ZX Spectrum поступившие в фирму C Nemo.

Ответ на письмо №4.

Ответ на письмо №56.

Ответ на письмо №73.

Ответ на письмо №78.

Ответ на письмо №86.

Ответы на письма №1-3.

Ответы на письма №10-15.

Ответы на письма №16-21.

Ответы на письма №22-29.

Ответы на письма №30-33.

Ответы на письма №34.

Ответы на письма №36-43.

Ответы на письма №44-49.

Ответы на письма №5-9.

Ответы на письма №50-55.

Ответы на письма №58-60.

Ответы на письма №61-72.

Ответы на письма №74-77.

Ответы на письма №79-85.

Ответы на письма №87-90.


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

Похожие статьи:
И смех и грех - Юмор, тосты, анекдоты.
Новости - Местные новости из Ростова.
Тусовка - Birthday List v0.2
Программирование - курс изучения ассемблера от Wlodek Black, продолжение.
Ассемблер - Регистры SP, PC, R, IX, IY, OUT-IN.

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