С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Рассказываю, как оно было. После прихода на Спеки в 1989 году я искренне считал, что порт Kempston Joystick (KJ) должен дешифроваться в железе как #1F. В моем "Пентагон 48" изначально было так. Правда попадались некоторые игры, где почему-то KJ отказывался работать. Знакомые программеры-хаккеры на это говорили, что мол поляки (или кто еще) криво сломали игры, вот и не работает джойстик. Меня это не очень радовало, поскольку игры попадались неплохие, но ведь можно всегда играть на клавиатуре.
Но летом 1991 года на радиорынок в Тушино кто-то притащил маленькую черную коробочку. На рынке по выходным ближе к обеду собирались группами знакомые и обсуждали свои спекки-дела и проблемы. Так вот, принес тот человек коробочку, видимо продать хотел. Но всем интересно, стали разглядывать, оказалось фирменный интерфейс KJ. Инструкция к нему прилагается, в ней все на английском. Я тогда по английски почти не понимал, но товарищи помогли прочитать. Вроде все как обычно, читают данные с порта 31 (#1F). Но уговорили товарища разобрать коробочку. Она не запломбирована, а на винтах была. Раскрутил он ее, а там все просто очень, две микросхемы, одна длинная 20 ног, а вторая 14 ног. Обе серии 74LS и проводники к разъему идут. Названия я списал и срисовал номера выводов, куда шли ножки (их там было не много).
А когда дома восстановил по этим запискам схему очень странно вышло: порт KJ дешифровался через IORQ RD и А5. И никаких А6 и А7. То есть не #1F, а #DF. Собрал я тогда на макетке такую же схему и припаял ее к тестовому "Пентагону 48". О чудо! Заработал KJ в тех играх, где он раньше молчал.
Но кто знает, может подвох какой? И тогда я междиком стал сбрасывать неработающие с KJ на #1F игры и смотреть, что внутри. А там порт #DF опрашивают. Впрочем, любой сам перепроверить может, некоторые из этих игр указаны по ссылке вверху.
Теперь к схеме с WOS, где дешифруется в железе #1F. Ясное дело, что не все игры будут работать с ней, но ведь вроде она фирменная, типа так и задумано:
ftp://ftp.worldofspectrum.org/pub/si...Schematics.gif
Но, если посмотреть на нее внимательно, увидите, что это четвертая версия и 1989 года выпуска. В ней дешифруются не только A5-A7, IORQ и RD, а еще и M1. Перестраховались ребята по полной, даже от подтвеждения прерывания (чего обычно в интерфейсах для ZX-ов не делали).
Так вот, если посмотреть не на схему, а на реальную плату KJ:
ftp://ftp.worldofspectrum.org/pub/si...ce_PCB-Top.jpg
и
ftp://ftp.worldofspectrum.org/pub/si...PCB-Bottom.jpg
вот в такой черной коробочке:
ftp://ftp.worldofspectrum.org/pub/si...kInterface.jpg
то выяснится, что схема дешифрации там другая. Упрощенная, ибо дешифруют только A5-A7 и RD. Да, да, без всяких IORQ и уж тем более M1. Это значит, что при чтении не из порта, а из памяти по адресу #1F будет считываться и содержимое ПЗУ и содержимое порта #1F KJ. Вот такая коллизия. Толькое если на плату внимательно посмотреть, видно, что версия одна из первых и год выпуска 1984.
И между первой версией 1984 года и четвертой 1989 года очевидно были еще две. Возможно одна из них и была той коробочкой с радиорынка в Митино в далеком 1991 году.
По поводу конфликтов с Kempston Mouse. Тут вот какое дело, даже если выбрать дешифрацию #1F, с фирменным интерфейсом мышки будет конфликт, ибо фирму интересует только бит 5 в младшей половине адреса порта. А он в нуле будет, если выбирать из #1F. Ведь для Kempston Joystick никто не определил значения старшей половины адреса при чтении. Значит игрухи могут совать туда что угодно при работе и будет вместо джойстика откликаться мышка. Разумеется, я про фирменное железо говорю. Только вот конфликта между мышкой и джойстиком в реальности быть не может. Физически . Ибо подключить одновременно интерфейсы мышки и джойстика невозможно. Они оба оконечные (подключаются к разъему, а к ним уже ничего не подключить). Так что либо джойстик либо мышка. Так оно задумано.
И еще один момент. Один из наиболее известных на западе железячников для ZX-a, Пира Путник (Pera Putnik) в 1991 году вот такую схему нарисовал:
http://piters.tripod.com/floif.htm
Обратите внимание, как у него порт KJ дешифруется. Ага, по адесу #DF. Значит не я один такой дурак был, когда к ZX-NEXT цеплял порт по этому адресу .
Теперь, к вопросу о том, как делать или как не делать. Тут вопрос чего господа разработчики получить хотят. Если совместимость с играми, то одно, а если совместимость со "стандартом", то другое. Кстати, "стандарта" то нет, ибо способ дешифрации #1F для KJ это лишь частный случай, как выясняется.
Conan, никто тебя дураком не считает , просто нужно акцентировать внимание на разнице между физической дешифрацией и программной адресацией. Дык вот, 99% проблем с дешифрацией на Спектруме - это из-за криворукости программистов или из-за того, что в своё время просто не было информации по программым портам, в результате чего каждый кулхацкер изголялся во что горазд, а вот теперь мы все это расхлёбываем.
Совместимость бывает только одна - со стандартом. А уже стандарт описывает какая должна быть аппаратная дешифрация, и какой должен юзаться программый адрес. Дык вот, щас не каменный век чтоб гадать - всё это есть в путеводителе по портам, на самый худой конец - на WOSe.
Последний раз редактировалось Black_Cat; 22.05.2010 в 12:03.
Off:
А тебя мноие считают. Потому, что с фотками выпускавшегося железа и названиями игр рассказывают, что не было как общего стандарта на адресацию кемпстон-джойстика. Были лишь конкретные и разные по адресации и дешифрамии варианты. Разные. Со своими плюсами и минусами. А ты все свое мелешь:
И подсовываешь список (далеко не полный) вариантов адресации и дешифрации (далеко не всех) контроллеров выпускавшихся для Speccy:
Выдавая его за стандарт.
Теперь по существу. Составить список адресуемых портов в выпускавшемся железе можно. И даже нужно. Я такой список составлял году в 1990-м. Именно для того, чтобы разобраться где что и как адресуется и как не напороться на конфликты, если хочешь добавить новое устройство.
Так вот, оказалось, что у некоторых устройств порты ввода-вывода пересекаются. Например у фирменного ZX LPRINT и ZX PRINTER, у IF1 и еще чего-то. Это не удивительно ибо Клайв Синклер планировал только для своих устройств (IF1, 2, ZX PRINTER) подключение. А про то, что будет куча других интерфейсов подключаться, это его не волновало и знать он об этом не мог. Да и железячников с программистами, которые это дело начинали уже не было в SRL.
Так вот, выпустила Kempston Micro Electronics Ltd. в 1983 году свой интерфейс джойстика. И написала на коробке: "Позволяет подключить почти любой джойстик от Атари, Комодора и свой собственный.
Совместим с софтом от Квиксильвиа, Артик, Ультимейт, Нью Дженерейшен, Мельбурн Хаус, Сильверсофт, Баг Байт, и т.д. и т.п."
ftp://ftp.worldofspectrum.org/pub/si...+Interface.jpg
Как вы думаете, эти софтовые дома (компании) откуда узнали про адресацию Кемпстона? Правильно, в отличие от Синклера, менеджеры в Кемпстоне понимали, что надо договариваться с разработчиками софта, дать им прототипы, описания, а уж те может быть поддержат интерфейс програмно. Заметьте, если посмотреть на игрушки, то практически во всех есть выбор между клавиатурой и несколькими типами джойстиков. Ибо не только представители Кемпстона в софтовые дома ходили.
Так вот, начали встраивать поддержку джойстиков в игры. На ура пошло, все довольны: Кемпстон железками торгует, игрописатели вообще на коне, и счастливые пользователи "палки радости" заламывают.
Но, тут выясняется, что с дешифрацией есть проблемы, она занимает три бита в младшей половине адреса (а хватило бы и одного), конфликтует с памятью и вообще может в сочетании с другим железом приводить к проблемам.
Что делают в Кемпстоне? Правильно, выпускают новую версию интерфейса. С исправленной адресацией. Но совместимую с уже имеющимся ПО. Но, тут возникает другой вопрос, а что делать с тем железом, что уже продано? Признать кривым? Никому это не выгодно. И вот выходит новая версия Кемпстон-джойстика тихо-тихо, без лишнего шума. И софтовые дома не информируются от каких то изменениях в адресасии или дешифрации.
Но, помимо уже старых софтописателей, появляются новые. А вот им уже рассказывают про новую адресацию и дешифрацию. И они пишут те самые программы, которые почему-то отказываются работать со старыми интерфейсми. Софтописателям не очень хорошо, а вот Кемпстон опять в выигрыше: покупайте новое железо и все будет работать и со старыми программами и с новыми!
Но вот на дворе наступает 1986-й год и джойстиком уже никого не удивишь. Народ начитался про всякие Лизы и Макинтоши и ему теперь мышку подавай. Ну что же, спрос дело хорошее, только мышка на ZX-е это портовое устройство. И ей не один адрес нужен, а минимум три. Где же их взять то, чтобы не влезть в чужие адреса (чтобы при подключенной мышке не глючил другой софт)? И решают в Кемпстоне использовать адрес джойстика, расширив его дешифрацию в старшей половине адреса. С джойстиком то конфликтов не будет, как я уже говорил выше, по физическим причинам . Но в софте конфликты могут быть. И опять меняется дешифрация в железе джойстика и в очередной версии интерфейса возвращается адрес 31 (#1F).
Как из этой ситуации выходить? Опять же каждый разработчик по своему решает. Кто-то кладет на совместимость, главное что бы навешать побольше портов всяких и разных и кое-как их между собой увязать с некоторыми потерями в неработающих играх.
And this is Czech popular interface with parallel port and joystick connector:
http://translate.google.com/translat...is_mhb8255.php
More photos of this interface (open case):
http://velesoft.speccy.cz/other/ur-4.zip (23 MB)
This interface is also implement in ZX clones DIDAKTIK GAMA, DIDAKTIK KOMPAKT, DIDAKTIK GAMA 192 and in russian clone ZX PROFI. Also in more FDD interfaces: DIDAKTIK 40, DIDAKTIK 80, MB02+
There are Baltik and Pentagon 48 schemes (Used the same I/O addresses):
http://sblive.narod.ru/ZX-Spectrum/Baltik/Baltik.htm
http://speccy.info/images/5/58/Penta...chematics.djvu
VELESOFT is a cool man but for us - Conan is also - COOL! so any interfaces is acceptable for us!
Amiga 1200+Blizzard 1260 72 Mb+Mtek 68030,Compozit 128, Leningrad 2,
Atari STE 1040,ZX Spectrum +2,Pentagon 48, Speccy2007 - 2 , ATAS 256k.
ZX Evo 4Mb- в строю.
Speccy2010 v1
Специалист (пока готовлюсь к восстановлению).
Это все мое!
Родное!
Все люблю на свете я! Это родина моя!
На заре спектрумостроения было много чего по вышеизложенным мною причинам. Сейчас стандарт на кемпстон устоялся и нет никаких двоечтений:
программный адрес - #1F,
аппаратная дешифрация - xxxxxxxxxx0xxxxx
Всё остальное - чревато геморроем, вне зависимости от того какую лапшу будет вешать на уши Конан .
Совершенно верно, ведь путеводитель по портам - это действующее справочное руководство, содержащее действительные сейчас стандарты, а не так милые тебе исторические опусы былых заблуждений
Последний раз редактировалось Black_Cat; 23.05.2010 в 02:42.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)