Page 1 of 2

Re: Конфигурация от TS-Labs (обсуждение)

PostPosted: Wed, 10.07.2013 11:08:04
by Sergey78
TS-Labs, можно ли приделать к TS-конфе сеговский джойстик? Чтобы все кнопки опрашивались, а не одна, как у кемпстона.

Re: Конфигурация от TS-Labs (обсуждение)

PostPosted: Wed, 10.07.2013 11:09:58
by TS-Labs
Это не к конфе, а к АВР.
Вопросы:
1. Как подключать (разъем)?
2. Как читать (порты)? Косплеить кемпстон?

Re: Конфигурация от TS-Labs (обсуждение)

PostPosted: Wed, 10.07.2013 12:25:18
by LessNick
Sergey78 wrote:Чтобы все кнопки опрашивались, а не одна, как у кемпстона.


Кстати да, меня этот вопрос тоже давно интересует. Чисто гиппотетически можно было бы заюзать оставшиеся биты на кнопки, или проще сделать дополнительный порт для новых кнопок? ;)

«Kempston Joystick ][ »

Re: Конфигурация от TS-Labs (обсуждение)

PostPosted: Wed, 10.07.2013 12:46:16
by r0bat
у ололоне кодера спросите, вдруг это радиолюбительская поделка?

Re: Конфигурация от TS-Labs (обсуждение)

PostPosted: Thu, 11.07.2013 18:59:05
by Sergey78
TS-Labs wrote:1. Как подключать (разъем)?

Подключать к X12. Правда механической клавиатурой придется пожертвовать, для SEGA джойстика надо 6 линий на ввод и 1 на вывод. 5V можно с X9 взять.
TS-Labs wrote:2. Как читать (порты)? Косплеить кемпстон?

Есть несколько вариантов: можно задействовать неиспользуемые биты в 1F, но это наверно придется прошивку ацекса менять, LE тратить. Более простой вариант - посадить джойстик, как и PS/2 клавиатуру, в Глюк часы, ячейки F0..FF.

Re: Конфигурация от TS-Labs (обсуждение)

PostPosted: Thu, 11.07.2013 19:48:22
by TS-Labs
Sergey78 wrote:Подключать к X12.

ОК, АВРка осилит. Тока вопрос: данные с джойстика сихронные? Или прут, как с пс/2 клавы? Бо сигналы клавы висят на авр-интах, иначе хер бы чо.
Sergey78 wrote:LE тратить.

Не так уж и много.
Sergey78 wrote: Более простой вариант - посадить джойстик, как и PS/2 клавиатуру, в Глюк часы, ячейки F0..FF.

Тоже без проблем.

Re: Конфигурация от TS-Labs (обсуждение)

PostPosted: Thu, 11.07.2013 20:13:12
by Sergey78
TS-Labs wrote:Тока вопрос: данные с джойстика сихронные? Или прут, как с пс/2 клавы?

Если трехкнопочный джойстик, то там все просто. Вверх, вниз прямо на разъем выведены, остальные кнопки через мультиплексор подключены, мультиплексор управляется сигналом "select" (pin 7). Шестикнопочный чуть посложнее. Там, чтобы достать дополнительные кнопки, надо 3 раза select дернуть в течение определенного интервала времени. Вот здесь есть описание:http://www.cs.cmu.edu/~chuck/infopg/segasix.txt
Подключить можно так, что останется совместимость с обычным однокнопочным кемпстон-джойстиком.
Примерно так:
Code: Select all
 Sega pad                X12 ZX-Evo
   1 ----- UP ---------> 18
   2 -----DOWN---------> 19
   3 -----LEFT---------> 16
   4 -----RIGHT--------> 17
   6 ------B/A---------> 20
   9 ------C/ST--------> 14
   7 <----SELECT-------- 1

Re: Конфигурация от TS-Labs (обсуждение)

PostPosted: Thu, 11.07.2013 20:23:52
by TS-Labs
Ну ладно, надо тока регистры придумать.
Вообще, я считаю, что читать с адресов F0-FF одни и те же данные - это проеб полимеров в промышленных масштабах. Я не знаю, насколько это поломает (и какой?) стандарт, но я бы разделил каждый рег по функционалу.

Re: Конфигурация от TS-Labs (обсуждение)

PostPosted: Thu, 11.07.2013 20:25:30
by TS-Labs
Если выводить на кемпстон, то просто добавить в АВР функционал выбора типа жопстика и выбирать его БИОСом по ресету, а потом можно переключать программно.

Re: Конфигурация от TS-Labs (обсуждение)

PostPosted: Thu, 11.07.2013 20:28:00
by Sergey78
Там же перед тем как читать, выбирается что именно надо прочитать. 0,1 - версия конфы,бутлоадера, 2 - PS/2 клавиатура. На 3 можно джойстик повесить.

Re: Конфигурация от TS-Labs (обсуждение)

PostPosted: Thu, 11.07.2013 20:29:14
by TS-Labs
Если уж флудить...
Кстати совместимость между конфами в части АВР прошивы решается элементарно: АВР знает какая конфа активна и может работать с учетом этого сакрального знания. Таким образом недоконфа будет читать по прежнему F0-FF, а у нас можно сделать например
F0 - версия,
F1 - жопстик и т.д.

Re: Конфигурация от TS-Labs (обсуждение)

PostPosted: Thu, 11.07.2013 20:30:30
by TS-Labs
Sergey78 wrote:Там же перед тем как читать, выбирается что именно надо прочитать. 0,1 - версия конфы,бутлоадера, 2 - PS/2 клавиатура. На 3 можно джойстик повесить.

А, ну тогда нет проблем.
Но все равно нужна переглючалка мех.клава / жойстиг.

Re: Конфигурация от TS-Labs (обсуждение)

PostPosted: Thu, 11.07.2013 20:43:41
by Sergey78
Переключалку можно повесить на запись 3 в адреса F0..FF. Если отслеживать в какой имеенно адрес пишется, то получается 4 бита. Например бит 0 - переключатель мех.клавиатура/джойстик, бит 1 - вкл/выкл турбокнопок, бит 2 - маппинг джойстика на Q,A,O,P,M,SPACE,<чтонибудь еще> для старых софтов.

Re: Конфигурация от TS-Labs (обсуждение)

PostPosted: Thu, 11.07.2013 21:04:50
by TS-Labs
Ну... Битами в АВР не фонтан - проще по адресам (switch).

Re: Конфигурация от TS-Labs (обсуждение)

PostPosted: Thu, 11.07.2013 21:07:03
by TS-Labs
А кстати вопрос: на сегоджойстике явно больше бит чем 8. Как впихнуть в кемпстон?

Re: Конфигурация от TS-Labs (обсуждение)

PostPosted: Thu, 11.07.2013 21:18:27
by Sergey78
TS-Labs wrote:Ну... Битами в АВР не фонтан - проще по адресам (switch).

Да вроде просто получается. Как то так:
Code: Select all
void SetVersionType(UBYTE type, UBYTE index)
{
    ext_type_gluk = type;
    if(type==3 && (index & 8))
    {
        joyflags = index & 7;
    }
}

Если пишем в ячейки F0..F7, то включается просто чтение, а если в F8..FF, то еще и режим работы переключится.

TS-Labs wrote:А кстати вопрос: на сегоджойстике явно больше бит чем 8. Как впихнуть в кемпстон?

Трехкнопочный влезает: D-pad,START,A,B,C. У шестикнопочного X,Y,Z можно как турбокнопки использовать.

Re: Конфигурация от TS-Labs (обсуждение)

PostPosted: Fri, 12.07.2013 00:12:20
by TS-Labs
В чем вопрос: биты используются если надо совмещать фичи/режимы. Если же выбор одного режима - то значения.
Теперь надо решить все же кемпстон или вейтовые порты.
Если кемпстон - в конфе только расширить wire [ 4:0] kj_in до 8 бит, остальное со стороны АВР.
Опрос 2-х джойстиков производить через один и тот же $1F, переключая режим в АВР. Но в 2 раза больше тактов на вейт (2 раза переключать режим против 1 раз опросить сега-джойстик).

Re: Конфигурация от TS-Labs (обсуждение)

PostPosted: Fri, 12.07.2013 01:43:20
by LessNick
Ну если вы уж собрались делать «переглючалка мех.клава / жойстиг», что вам мешает сделать 2 сеговских жопстика, что бы уж вдвоём можно было играть? Тогда на какой-нибудь пати даже файтинги можно было б устроить.

Re: Конфигурация от TS-Labs (обсуждение)

PostPosted: Fri, 12.07.2013 08:19:10
by Sergey78
А как второй подключать? У отмелки столько входов нет.
----
Upd.
Посмотрел исходники АВР. Так оказывается мех.клавиатура наоборот опрашивается. 0 выдается на ZXCOL, нажатие читается с ZXROW. В таком варианте можно 2 джойстика подключить.
Code: Select all
Sega pad 1              X12 ZX-Evo
   1 ----- UP ---------> 18 JOYU
   2 -----DOWN---------> 19 JOYD
   3 -----LEFT---------> 16 JOYL
   4 -----RIGHT--------> 17 JOYR
   6 ------B/A---------> 20 JOYF
   9 ------C/ST--------> 8  ZXROW7
   7 <----SELECT-------- 14 ZXCOL0
   
Sega pad 2              X12 ZX-Evo
   1 ----- UP ---------> 1  ZXROW0
   2 -----DOWN---------> 2  ZXROW1
   3 -----LEFT---------> 3  ZXROW2
   4 -----RIGHT--------> 4  ZXROW3
   6 ------B/A---------> 5  ZXROW4
   9 ------C/ST--------> 6  ZXROW5
   7 <----SELECT-------- 10 ZXCOL4

Re: Конфигурация от TS-Labs (обсуждение)

PostPosted: Fri, 12.07.2013 11:24:42
by LessNick
Sergey78 wrote:В таком варианте можно 2 джойстика подключить.


Ну и супер :D

Re: Конфигурация от TS-Labs (обсуждение)

PostPosted: Fri, 12.07.2013 14:06:20
by TS-Labs
Sergey78 wrote:Так оказывается мех.клавиатура наоборот опрашивается. 0 выдается на ZXCOL, нажатие читается с ZXROW.

А это равнопенисуально. Пины можно запрограммить как угодно.

Re: Подключение SEGA joystick к TS-Conf

PostPosted: Fri, 19.07.2013 18:28:26
by DimkaM
Sergey78 wrote:Более простой вариант - посадить джойстик, как и PS/2 клавиатуру, в Глюк часы, ячейки F0..FF.
вайт 200тактов при 3.5мгц, при 14мгц сами помножите на четыре

Re: Подключение SEGA joystick к TS-Conf

PostPosted: Fri, 19.07.2013 19:20:44
by TS-Labs
Если читать 2 джойстика с разных адресов, то выходит по 1 вейтовому обращению на джойстик + 1 обращение на включение джойстика.
Вот эти ебучие выборки источника меня и харят.
Предлагаю, фо грейт джастис, вывести чтение разных источников на разные адреса. Благо диапазон 16 адресов позволяет.
Если в какой-то момент 16 не хватит, сделать переключение на другие 16.
Минусов, кроме исправлений нескольких контант в WC, не вижу.
А, и да - еще ж дублировать (по выбору) 1 из сегов на кемпстон/синклеры, чтоб любовно и прельстиво советские игры.

Re: Подключение SEGA joystick к TS-Conf

PostPosted: Fri, 19.07.2013 19:45:47
by Sergey78
DimkaM wrote:вайт 200тактов при 3.5мгц

Что так много то :crazy:

Re: Подключение SEGA joystick к TS-Conf

PostPosted: Fri, 19.07.2013 20:01:40
by TS-Labs
Много, потому что аврка слоупочит - там тонны говнокода. Со временем пофиксается.