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.
Другие статьи номера:
Похожие статьи:
В этот день... 9 октября