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

Железо, связанное с TS-Conf

Postby Sergey78 » Wed, 10.07.2013 11:08:04

TS-Labs, можно ли приделать к TS-конфе сеговский джойстик? Чтобы все кнопки опрашивались, а не одна, как у кемпстона.
Sergey78
 
Posts: 420
Joined: Wed, 05.09.2012 20:04:40

Postby TS-Labs » Wed, 10.07.2013 11:09:58

Это не к конфе, а к АВР.
Вопросы:
1. Как подключать (разъем)?
2. Как читать (порты)? Косплеить кемпстон?
User avatar
TS-Labs
 
Posts: 5232
Joined: Thu, 26.07.2012 01:29:56

Postby LessNick » Wed, 10.07.2013 12:25:18

Sergey78 wrote:Чтобы все кнопки опрашивались, а не одна, как у кемпстона.


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

«Kempston Joystick ][ »
(∩。•o•。)っ.゚☆。・ TS-Conf для PentEvo — это классический Pentagon 128k для тех кто хочет больше!
User avatar
LessNick
грей сашу — сашу грей
 
Posts: 938
Joined: Thu, 26.07.2012 15:00:53

Postby r0bat » Wed, 10.07.2013 12:46:16

у ололоне кодера спросите, вдруг это радиолюбительская поделка?
r0bat
 
Posts: 131
Joined: Thu, 26.07.2012 13:33:38

Postby Sergey78 » Thu, 11.07.2013 18:59:05

TS-Labs wrote:1. Как подключать (разъем)?

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

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

Postby TS-Labs » Thu, 11.07.2013 19:48:22

Sergey78 wrote:Подключать к X12.

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

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

Тоже без проблем.
User avatar
TS-Labs
 
Posts: 5232
Joined: Thu, 26.07.2012 01:29:56

Postby Sergey78 » Thu, 11.07.2013 20:13:12

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
Last edited by Sergey78 on Thu, 11.07.2013 20:23:57, edited 1 time in total.
Sergey78
 
Posts: 420
Joined: Wed, 05.09.2012 20:04:40

Postby TS-Labs » Thu, 11.07.2013 20:23:52

Ну ладно, надо тока регистры придумать.
Вообще, я считаю, что читать с адресов F0-FF одни и те же данные - это проеб полимеров в промышленных масштабах. Я не знаю, насколько это поломает (и какой?) стандарт, но я бы разделил каждый рег по функционалу.
User avatar
TS-Labs
 
Posts: 5232
Joined: Thu, 26.07.2012 01:29:56

Postby TS-Labs » Thu, 11.07.2013 20:25:30

Если выводить на кемпстон, то просто добавить в АВР функционал выбора типа жопстика и выбирать его БИОСом по ресету, а потом можно переключать программно.
User avatar
TS-Labs
 
Posts: 5232
Joined: Thu, 26.07.2012 01:29:56

Postby Sergey78 » Thu, 11.07.2013 20:28:00

Там же перед тем как читать, выбирается что именно надо прочитать. 0,1 - версия конфы,бутлоадера, 2 - PS/2 клавиатура. На 3 можно джойстик повесить.
Sergey78
 
Posts: 420
Joined: Wed, 05.09.2012 20:04:40

Postby TS-Labs » Thu, 11.07.2013 20:29:14

Если уж флудить...
Кстати совместимость между конфами в части АВР прошивы решается элементарно: АВР знает какая конфа активна и может работать с учетом этого сакрального знания. Таким образом недоконфа будет читать по прежнему F0-FF, а у нас можно сделать например
F0 - версия,
F1 - жопстик и т.д.
User avatar
TS-Labs
 
Posts: 5232
Joined: Thu, 26.07.2012 01:29:56

Postby TS-Labs » Thu, 11.07.2013 20:30:30

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

А, ну тогда нет проблем.
Но все равно нужна переглючалка мех.клава / жойстиг.
User avatar
TS-Labs
 
Posts: 5232
Joined: Thu, 26.07.2012 01:29:56

Postby Sergey78 » Thu, 11.07.2013 20:43:41

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

Postby TS-Labs » Thu, 11.07.2013 21:04:50

Ну... Битами в АВР не фонтан - проще по адресам (switch).
User avatar
TS-Labs
 
Posts: 5232
Joined: Thu, 26.07.2012 01:29:56

Postby TS-Labs » Thu, 11.07.2013 21:07:03

А кстати вопрос: на сегоджойстике явно больше бит чем 8. Как впихнуть в кемпстон?
User avatar
TS-Labs
 
Posts: 5232
Joined: Thu, 26.07.2012 01:29:56

Postby Sergey78 » Thu, 11.07.2013 21:18:27

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 можно как турбокнопки использовать.
Sergey78
 
Posts: 420
Joined: Wed, 05.09.2012 20:04:40

Postby TS-Labs » Fri, 12.07.2013 00:12:20

В чем вопрос: биты используются если надо совмещать фичи/режимы. Если же выбор одного режима - то значения.
Теперь надо решить все же кемпстон или вейтовые порты.
Если кемпстон - в конфе только расширить wire [ 4:0] kj_in до 8 бит, остальное со стороны АВР.
Опрос 2-х джойстиков производить через один и тот же $1F, переключая режим в АВР. Но в 2 раза больше тактов на вейт (2 раза переключать режим против 1 раз опросить сега-джойстик).
User avatar
TS-Labs
 
Posts: 5232
Joined: Thu, 26.07.2012 01:29:56

Postby LessNick » Fri, 12.07.2013 01:43:20

Ну если вы уж собрались делать «переглючалка мех.клава / жойстиг», что вам мешает сделать 2 сеговских жопстика, что бы уж вдвоём можно было играть? Тогда на какой-нибудь пати даже файтинги можно было б устроить.
(∩。•o•。)っ.゚☆。・ TS-Conf для PentEvo — это классический Pentagon 128k для тех кто хочет больше!
User avatar
LessNick
грей сашу — сашу грей
 
Posts: 938
Joined: Thu, 26.07.2012 15:00:53

Postby Sergey78 » Fri, 12.07.2013 08:19:10

А как второй подключать? У отмелки столько входов нет.
----
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
Sergey78
 
Posts: 420
Joined: Wed, 05.09.2012 20:04:40

Postby LessNick » Fri, 12.07.2013 11:24:42

Sergey78 wrote:В таком варианте можно 2 джойстика подключить.


Ну и супер :D
(∩。•o•。)っ.゚☆。・ TS-Conf для PentEvo — это классический Pentagon 128k для тех кто хочет больше!
User avatar
LessNick
грей сашу — сашу грей
 
Posts: 938
Joined: Thu, 26.07.2012 15:00:53

Postby TS-Labs » Fri, 12.07.2013 14:06:20

Sergey78 wrote:Так оказывается мех.клавиатура наоборот опрашивается. 0 выдается на ZXCOL, нажатие читается с ZXROW.

А это равнопенисуально. Пины можно запрограммить как угодно.
User avatar
TS-Labs
 
Posts: 5232
Joined: Thu, 26.07.2012 01:29:56

Postby DimkaM » Fri, 19.07.2013 18:28:26

Sergey78 wrote:Более простой вариант - посадить джойстик, как и PS/2 клавиатуру, в Глюк часы, ячейки F0..FF.
вайт 200тактов при 3.5мгц, при 14мгц сами помножите на четыре
lvd> Вроде да, но по матану спец TS-Labs, пусть расово верно и православно одобрит. :-P
DimkaM
 
Posts: 268
Joined: Thu, 26.07.2012 12:36:38

Postby TS-Labs » Fri, 19.07.2013 19:20:44

Если читать 2 джойстика с разных адресов, то выходит по 1 вейтовому обращению на джойстик + 1 обращение на включение джойстика.
Вот эти ебучие выборки источника меня и харят.
Предлагаю, фо грейт джастис, вывести чтение разных источников на разные адреса. Благо диапазон 16 адресов позволяет.
Если в какой-то момент 16 не хватит, сделать переключение на другие 16.
Минусов, кроме исправлений нескольких контант в WC, не вижу.
А, и да - еще ж дублировать (по выбору) 1 из сегов на кемпстон/синклеры, чтоб любовно и прельстиво советские игры.
User avatar
TS-Labs
 
Posts: 5232
Joined: Thu, 26.07.2012 01:29:56

Postby Sergey78 » Fri, 19.07.2013 19:45:47

DimkaM wrote:вайт 200тактов при 3.5мгц

Что так много то :crazy:
Sergey78
 
Posts: 420
Joined: Wed, 05.09.2012 20:04:40

Postby TS-Labs » Fri, 19.07.2013 20:01:40

Много, потому что аврка слоупочит - там тонны говнокода. Со временем пофиксается.
User avatar
TS-Labs
 
Posts: 5232
Joined: Thu, 26.07.2012 01:29:56

Next

Return to Hardware

Who is online

Users browsing this forum: No registered users and 4 guests

x