Born Dead #10
02 июля 2000

Железо - О тайнах некоторых компьютеров и кое-каких девайсов: Pentagon 1024, ПЗУ, Кэш (cache) 32k, Мышка (Kempston mouse) , Как определить наличие мышки?, Как программно отличить Pentagon 512 от Pentagon 1024?

════════════════════════════════════════════════════════════════
                        IRON MADE IN
════════════════════════════════════════════════════════════════

(c) Alone Coder/Invaders 8

                        Pentagon 1024

    Первый  раз  пишу  в  редакцию  :).  Хочется посодействовать
хорошей газете, а то больно много расплодилось плохих. Поскольку
писать  не о  чем, расскажу  о  тайнах  некоторых  компьютеров и
кое-каких  девайсов.  Схем  буду  избегать, так как читателя они
пугают, а рисовать их влом.

    К  удивлению  многих,  на свете существует такая машина, как
Pentagon  1024.  Что же отличает её от прочих клонов ZX Spectrum
и  почему  о ней так мало слышно? Просто этот компьютер нигде не
производится.  Каждый его экземпляр собирают вручную, в основном
на  базе  Pentagon  128. Естественно, при таком состоянии дел не
существует   единственной  комплектации  компьютера;  восхищения
достойно,   что   вообще  сложился  какой-то  стандарт.  Хочется
помянуть   хорошим   словом  товарищей,  без  которых  бы  этого
стандарта (и компьютера тоже) не было: V.M.G., Ivan Mak, Mr.Gluk
& Co. и другие, кого я не знаю.

   Управление ресурсами Pentagon 1024 происходит с помощью порта
#eff7 (дешифрация minimum по A3, A12, IOWR, сброс по RES):
   bit  0  -  "атрибут на байт" (a4b) - аппаратный мультиколор,
атрибуты с адреса #6000. 1 - включено.
   bit 1 - 512x192. См. Deja Vu #6. 1 - включено.
   bit 2 - защёлка памяти выше 128k. 0 - есть память, 1 - нет.
   bit 3 - Hе используется. Предлагаю:read only cache. 0 - можно
записывать, 1 - нельзя.
   bit 4 - GigaScreen (аппаратное наложение 0-го и 1-го экранов.
Чередование строк:C35 = (bit4 & 8kHz) xor C35.) Hе используется.
Точнее,  в  игре  "Homer  Simpson  In Russia" вместо порта #eff7
прописано #fffc.
   bit 5, 6 - зарезервировано для Rom-Disk. Так как эта штука не
распространенаредлагаю:bit 5 - включение Sound Blaster (см.ZX-
Guide 2)it 6 - включение 384x304 (там же).
   bit 7 - Gluk CMOS (часы реального времени).См.схему в Deja Vu
#8 (правдаам вместо #eff7 тоже написано #fffc). 1 - порты CMOS
активны.

       В каком порядке устройства захватывают A13V и C35?

   A13V - 13-й адрес в схеме коммутации видеоконтроллера (на сх.
Pentagon первой версии 11/D17), изначально земля.
    У  меня  собрано  так: a4b формирует, SB складывает, 512x192
коммутирует,   384x304  переключает.  Если  384x304  собрать  на
мультиплексоре  (КП11,  можно  КП12),  то: по #eff7 bit 6 должен
коммутироваться  старый  A13V  (если  bit  6=единица) либо земля
(если  bit  6=ноль), а полученный сигнал надо примешивать (OR) к
C35.  Тогда  при  установленном  bit  1  это  будет уже 768x304,
хе-хе...
    C35   -   1-й   бит  номера  странички  в  схеме  коммутации
видеоконтроллера (на Pentagon 13/D17), изначально #7ffd bit 3.
    У  меня  не  перехватывается,  но,  по логике вещей, сначала
768x304 коммутирует и примешивает, а потом GIGASCREEN ксорит. На
384x304 тогда будут возможны X-Color'ы с пониженным мерцанием.

                              ПЗУ

    TR-DOS   v5.13Fm   -   обычный   TR-DOSмеется   ускоренное
позиционирование  (из-за  которого,  к сожалению, глючит Monster
Commander);   диск  D  -  RAM-disk,  можно  переписать  на  него
программу, юзающую #3d13, и рулиться с высокой скоростью...
    Gluk   Reset   Service  v5.3K  -  операционная  система  ;),
прошивается  в  неиспользуемую страничку 27512 (обычно нулевую).
Компьютер должен входить в туда по RESET.
   Сброс с горячими кнопками: RESET/1 - quit to STS, RESET/Space
- TR-DOS. Полезно  для выхода в ALASM или STS, когда при отладке
программа повисает.
    Есть  возможность  просмотра  экранов прерванной программы и
записи  их  на диск (описываемая версия, правда, страдает глюком
по   отношению   к   0-му   экрану).  Присутствует  сохранялка и
восстановилка   каталога   диска   на   161-й  дорожке.  Имеется
встороенный boot+Perfect Commander 1.52. Автор -  Ренат Мамедов,
2:5026/5.46@fidonet

                        Кэш (cache) 32k

    Микросхема  статического ОЗУ, ставится по схеме LPrint III в
адресах  #0000-#3fff.  Обычно  используется буржуйская 11C256. В
режиме  Turbo  программа  в  этой области памяти не подвергается
WAIT'ам.
   IN (251) - включить кэш, IN (123) - выключить. Старший  адрес
переключается сигналом DOSEN (15-й адрес ПЗУ).
   Некоторые программы, использующие General Soundонфликтуют с
LPrint III. Советую  авторам  таких  программ сначала определять
наличие  этого  девайса  (а  он  распространён, однако), а потом
проверять GS.

                     Мышка (Kempston mouse)

    Двух- или трехкнопочная мышь на портах (#fbdf)=координата X,
(#ffDF)=координата  Y  (считается  снизу вверх!), (#fadf)=кнопки
(ноль   -   кнопка  нажата,  единица  -  отпущена).  Стандартное
расположение  кнопок  (по  CREATE  SOFT,  а левую схему придумал
Зонов):  левая  кнопка=D0,  правая кнопка=D1, средняя кнопка=D2.
Схема   подключения   и   советы   по   переоборудованию   мышек
опубликованы в ZX Format #5.

                 Как определить наличие мышки?

    Мышь  считается  подключенной к компьютеру, если шина данных
его  стабильна, а значения, считанные из всех 3 портов мышки, не
равны  между  собой.  Программа-определялка,  вероятность отказа
1/65536:

           HALT
           IN A-1)
           CP -1
           JR NZнет мыши>
           LD BCFADF
           IN CC)   ;(#fadf) = кнопки
           IN A#DF) ;(#ffdf) = Y
           CP C
           JR NZесть мышь>
           LD AFB
           IN A#DF) ;(#fbdf) = X
           CP C
           JR NZесть мышь>
<нет мыши> ....

                       Другие устройства

    Стандартные  дополнительные  устройства в основном звуковые:
AY  (of  coz), COVOX (обязательно), SounDrive v1.51 (с эмуляцией
COVOX,  см.схему  в  приложении  к  Deja  Vu  #1).  Теоретически
обоснована  возможность  подключения General Sound. Вроде бы DMA
UltraSound тоже должна работать, но данных об этом нет ;).

   Стандартный модем - Hayes по схеме Кондратьева (см.Oberon #4)
на 14400-57600 бод.

   Дисковый интерфейс Beta Disk + TR-DOS, 55" и 3" флопы. По
поводу  вторых  ничего  хорошего  сказать  не  могу,  из  первых
рекомендую   Robotron,   в   худшем   случае   Teac  (из-за  его
заторможенности  и  недолговечности),  а самые лучшие дисководы,
которые я наблюдал - Mitsumi на 1M.

    Стандартного  интерфейса винчестера пока нет. В сущности, не
так  важна, была  бы совместимость винта со старыми программами.
Ведь   в   случае   необходимости   пользователь   всегда  может
скопировать  образ  дискеты на реальную дискету и грузить с неё.
На  Амиге,  к  примеру,  так  и делают. Неплохо было бы сочинить
простую схему и Commander/Viewer под неё.

     Как программно отличить Pentagon 512 от Pentagon 1024?

    Стандартный  порт  расширения  памяти  в  пентагоне - #7ffd.
Определить реальный объём памяти по этому порту, не включив 48-й
режим  в  случае  512k, было бы невозможно, если бы не следующая
тонкость.

    Защёлка  48k/non  48k  (#7ffd  bit 5) срабатывает лишь в том
случае,  когда  память  выше  128k является выключенной, то есть
когда  2-й  бит порта #eff7 установлен (переключением этого бита
управляет, среди всего прочего, операционка Gluk Reset Service).
Поэтому, если компьютер реагирует на переворачивание этого бита,
то можно сбросить бит и спокойно проверять объём памяти.

    Hа  всякий  случай  дополнительные  биты порта #7ffd (6)
подключены   параллельно   битам   порта  #dffd  (0),  чтобы
сохранить  совместимость  с  софтом, писанным под Profi 1024. Hо
следует иметь в виду, что работа с одним портом #7ffd происходит
быстрее.

     Почему некоторые программы конфликтуют с портом #7ffd?

    В  таких  программах  для  быстрого  переключения  страничек
памяти   используется   неполная   адресация   порта  (#fd),  но
заполнение  этих  же  страничек (загрузка, например) ведётся при
помощи  полной  адресации.  Как  водится, при неполной адресации
устанавливают  6-й  бит  данного (штоп работало на скорпионе), в
результате  чего  на  первом  и  на  втором этапе мы получаем не
соответствующие друг другу номера активизируемых страничек.

    Владельцам  Pentagon 512-1024 приходится на время выполнения
таких  программ  отключать  верхнюю память.Избежать этого можно:
если   в  одном  месте  вашей  программы  используется  неполная
адресацияо используйте её по всей программе!

                       Дельное предложение

    Предлагаю    использовать   порт   #eff7   на   чтение.   Из
неподключенных  битов  (где  не реализован соответствующий этому
биту  девайс)  должна  считываться  единица, подключенные должны
возвращать  значения,  записанные  в порт. Собрать это несложно,
зато  все  дополнительные  устройства  станет  легко  программно
определить.  А  если порт #eff7 на чтение не реализован (то есть
если  из  порта #eff7 считывается постоянное значение), то можно
предусмотреть   в   программе  возможность  выбора  конфигурации
вручную (как оно и было до сих пор).

Alone Coder / Invaders 8 отбивал кулаки об AC Edit v0.43




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

Вступление - 666 байт От Редакции: почему газета разрослать до обьемов журнала.

Новости - Monster рассказывает об оболочке к газете.

Новости - Relict^PHT присоединился к K3L, Exploder ушел из группы XTM, Eternity Industry готовят новый журнал, Diver ушел в армии, Черный Ворон 2 не за горами, новое пати ZX PARTY 2000, Faster^TNL затевает сайт по программированию для спектрума, и другие новости.

Игры - новая игра хабаровской группы Action под названием "Восьмой Отдел или Агент Лари и Лиза против Доктора-Икс".

Игры - описание игры Crossword от Razzlers.

Партийная зона - FOREVER 2E3, первое крупное событие в мире demoparty для Speccy в этом году: результаты и рассуждения от UnBEL!EVER'a.

Партийная зона - FOREVER 2E3: подробный отчет с пати от художника CVM of ZeroTeam.

Партийная зона - FOREVER 2E3: путешествие Gasman'a на Forever через пол европы.

Партийная зона - Mekka Symposium 2000 - одно из тех мировых party, что при всём своём размахе и коммерческой основе не потеряло духа истинных demoparty.

Партийная зона - подробный отчет и результат Phantom Lord с Ростовского пати PARADOX'2000. А также разгромная критика от UnBEL!EVER'a.

Партийная зона - Результаты первого Беларусского демопати MILLENNIUM'2000. По прогнозам MILLENNIUM demoparty в Минске должно было закончиться полным провалом...

Партийная зона - "PHAT0, как много в этом слове для сердца сценера слилось?!". Информация о предстоящем демопати.

Злоба дня - SergSoft рассказывает о создании нашумешей интры C2H5OH и демах в целом.

Злоба дня - CC'000; зачем он тебе?! Рассуждения об идеальном демопати; наставления участникам пати. UnBEL!EVER раскрывает мысль - почему CC'000 это мировой уровень.

Cult pro свет - история непростой судьбы китайского клона спектрума - Enterprise 64/128.

Cult pro свет - DEMOSCENE для чайников.

Железо - О тайнах некоторых компьютеров и кое-каких девайсов: Pentagon 1024, ПЗУ, Кэш (cache) 32k, Мышка (Kempston mouse) , Как определить наличие мышки?, Как программно отличить Pentagon 512 от Pentagon 1024?

Железо - К вопросу о дисководах и multiloader'ах.... "Как ни крути... три дисковода не добавят тебе мастерства!"

ПОД ЗВУКОМ "ПИ" - Raver: "Не хочу вас обидеть, хочу лишь сказать святую правду людям - вы же профессионально сосёте!"; разборки между Constelattion и Phantasy.

ПОД ЗВУКОМ "ПИ" - Шутки про демосценеров: "Пpиснился однажды Diver'у стpашный сон: Fil и Gas-13 с тpанспаpантом "STOP CONVERTING!" И пpоснулся Diver в холодном поту, и учится с тех поp pисовать всё сам..."

Реклама - Ёжики и мировые продажи CD-R дисков.


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

Похожие статьи:
Премьера - НЛО-2. Дьяволы бездны.
Интерфейс - "за базар ответишь!" русский язык настолько "велик и могуч", что грамотно пользоваться им, к сожалению, дано далеко не всем.
Проходилка - Игра "DIZZY - X".

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