|
Open Letters
#01
20 июня 1999 |
|
Ответ на письмо №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.
Другие статьи номера:
Похожие статьи:
В этот день... 16 ноября