OldComp.cz

Komunitní diskuzní fórum pro fanoušky historických počítačů


Právě je 26.04.2024, 22:14

Všechny časy jsou v UTC + 1 hodina [ Letní čas ]




Odeslat nové téma Odpovědět na téma  [ Příspěvků: 24 ]  Přejít na stránku 1, 2  Další
Autor Zpráva
 Předmět příspěvku: Navrat A-MOUSE
PříspěvekNapsal: 13.06.2020, 10:44 
Offline
Pan Štábní

Registrován: 29.06.2013, 16:52
Příspěvky: 1614
Has thanked: 31 times
Been thanked: 357 times
Pohraval jsem si s myslenkou, jak slozite by bylo upravit stavajici ZX software (vetsinou hry) pro ovladani amiga mysi pripojenou misto kempston joysticku.

Kdysi davno v ZX Magazinu vysel clanek s ovladacem pro Amiga mys. Pripojeni nevyzaduje nic extra, podminkou je jen vlastnit kempston joystick interface se spravne zapojenym konektorem (musi mit +5V i GND). Vypadalo to pekne, ale software pro amiga mys na ZX prakticky neexistoval. Pozdeji se par her preci jen upravilo, dale Art Studio a to bylo skoro vse. Dlouha leta se tim nikdo nezabyval. Mnoho lidi muze odradit fakt, ze stare Kempston joystick interface maji casto jinak zapojeny konektor joysticku (maji +5V misto GND a GND chybi a v drtive vetsine vsechny tyto interface podporuji jen jedno tlacitko fire. Jenze dnes je jina doba a zmenilo se prakticky vse. Skoro vsechny moderni kempston joystick interface ale i ZX klony maji joystick konektor spravne zapojeny podle standardu AMIGA/ATARI, takze zde mame +5V i GND na spravnych pinech a dokonce se bezne podporuji dve i tri tlacitka fire. Takze HW je na Amiga mys uz pripraveny, ted jen sehnat si mys...

Ano, je mozne zakoupit bazarovou mysku ci sahnout do krabice na pude, ale nabizi se ti jeste jina financne nenarocna varialna a tou je porizeni PS/2toAMIGA mouse redukce.
Vyjde na par stokorun a da se postavit i doma z jednoho obvodu PIC do stovky. Funguje to tak, ze pripojite PS/2 mys (funguji i USB mysi, ktere jsou od vyrobce dodavane s PS/2 redukci) ale i nektere jine USB mysi podporuji PS/2 protokol. PS/2 mys sezenete jeste furt docela dobre, ma nekolikanasobne vyssi DPI nez Amiga mys a ma vzdy 3 tlacitka. Redukce PS/2toAMIGA prevadi pohyb mysi na serii signalu clonek amiga mysi. Ve vysledku se redukce chova jako rychla amiga mys, se kterou uz nemusite jezdit pres celou podlozku mysi ale bude vam stacit par cm.

Takze mame doma nejaky ten moderni interface s kempston joystick konektorem (napriklad je dela BYTEDELIGHT) jako treba DIVMMC nebo MB02+, pripadne nejaky klon ZX jako ZX Omni. PS/2toAMIGA redukci a PC mys uz mame pripravene a co ted dal ? Aktualne s tim muzeme pouzivat jen stavajici ZX software: https://velesoft.speccy.cz/othermouse-cz.htm
Je tam SQ Tracker, ART Studia, FONT EDITOR, hry jako BLACK RAVEN, SPARROWS...

Ovladac mysi funguje tak, ze sleduje zmenu clonek mysi z kempston portu a podle jejich zmeny oproti predchozimu stavu vyhodnoti smer pohybu mysi. Pokud ale myslite, ze bude stacit po prerusenim (tedy 50x za vterinu) cist stav portu a pokazde jen jednou detekovat smer, tak to funguje, ale jen se starou amiga mysi a za predpokladu, ze s ni pohybujete rozumnou rychlosti. Prave pro to ovladac funguje na bazi vicenasobneho cteni mysi po delsi casovy usek. Takove reseni je spolehlivejsi, ale uplne zbytecne zabira cas CPU.

Navrhuji lepsi reseni:
v prubehu jednoho TV snimku (doba mezi prerusenim) prubezne vycitat kempston port a jeho stav ukladad do pameti ovladace. Vlastne by slo jen o velice kratky kod, ktery provede IN A,(31) + LD (xxxx),A. Pri preruseni se bude spoustet skutecny ovladac, ktery si prohledne vsechny bajty, ktere se v prubehu TV snimku vycetly. Tim mame k dispozici casove rovnomerneji rozprostrenou detekci pohybu. Driver pak zabere procesoru daleko mene casu. Uprava her by nemela byt nijak slozita. Mam zdrojaky uprav od her pro K-MOUSE, takze zamena ovladacu uz je brnkacka.

Ve vysledku by melo jit prevest vetsi cast software pro K-MOUSE take na A-MOUSE (amiga mys). Tim odpadne nutnost porizovat si K-MOUSE interface. Sice samotna PS/2toAMIGA redukce je take urcita investice, ale nekolikanasobne mensi. Jo a da se koupit USBtoAMIGA mouse redukce (SMALLYMOUSE 2), ktera je tedy docela draha, ale dala by se postavit kolem 200 Kc, zdrojaky jsou free. Tam muzete pripojit uz bezdratovou mys.

Jiste kazdeho napadne, ze kdyz uz misto kempstonu pripojim amiga mys ci redukci, tak uz nejde pripojit joystick. Ano, to je pravda. Mys ci redukce se musi odpojit a misto jich pripojit joystick. Ale nemusi to tak byt. Obvod PIC v PS/2 redukcich totiz umoznuje soucasne pripojeni joysticku s tim, ze staci na joysicku stisknout fire a mys se odpoji, a naopak kliknutim na mysitko se mys opet aktivuje. Takova redukce se da postavit ci k nejake stavajici primo joystick konektor pridratovat.

_________________
http://velesoft.speccy.cz/


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Navrat A-MOUSE
PříspěvekNapsal: 13.06.2020, 14:23 
Offline
Profík
Uživatelský avatar

Registrován: 20.02.2017, 01:17
Příspěvky: 806
Has thanked: 19 times
Been thanked: 48 times
Víte co by byla bomba? Kdyby šlo zprovoznit paddle controllers z Atari 2600. Hry jako Arkanoid nebo Batty by nad tím zaplesaly, protože spinner je ta jediná správná volba pro cihličky. Kam se hrabe myš...


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Navrat A-MOUSE
PříspěvekNapsal: 13.06.2020, 17:45 
Offline
Pan Štábní
Uživatelský avatar

Registrován: 12.05.2013, 21:39
Příspěvky: 1984
Bydliště: Praha
Has thanked: 85 times
Been thanked: 255 times
Me neni jasne, kam chces povesit ten “mensi” ovladac pro vycitani stavu, aby se spoustel dostatecne casto.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Navrat A-MOUSE
PříspěvekNapsal: 14.06.2020, 01:44 
Offline
Pan Štábní

Registrován: 29.06.2013, 16:52
Příspěvky: 1614
Has thanked: 31 times
Been thanked: 357 times
Doda píše:
Me neni jasne, kam chces povesit ten “mensi” ovladac pro vycitani stavu, aby se spoustel dostatecne casto.


Nepujde o ovladac, ale o miniaturni kratky kod o delce nekolika instrukci, ktery jen nacte port 31 a zapise ho do pameti pro ovladac. Umistit ho lze kamkoli, treba po vykresleni kazdeho sprajtu, proste kamkoli. Neni to nijak extra dulezite, ale pro plynulost pohybu by bylo lepsi, kdyby se toto vycitani spoustelo v prubehu kazdeho tv snimku idealne v podobnych casovych odstupech a casto, rekneme treba 20x (muj odhad...). Proste nekam do hry budu vkladat CALL READPORT, a samozrejme musim pred navratem z meho kodu jeste provest instrukce, ktere byly prepsane instrukci CALL. Jasne, ze driver pro AMIGA mys zabere vice casu CPU nez k-mouse driver (ten cte jen jednou za preruseni), ale zase to neni tolik, aby to ZX software nejak znatelne zpomalilo.

_________________
http://velesoft.speccy.cz/


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Navrat A-MOUSE
PříspěvekNapsal: 14.06.2020, 01:48 
Offline
Pan Štábní

Registrován: 29.06.2013, 16:52
Příspěvky: 1614
Has thanked: 31 times
Been thanked: 357 times
U casove narocnejsich programu, kde nepujde driver spoustet najednou, jde zajistit, aby kazde preruseni probehla jen cast driveru a dalsi preruseni zase dalsi cast atd, atd... Pak napriklad jednou za 2 nebo 3 preruseni zmeni driver souradnice a CPU to zatizi podstatne mene.

_________________
http://velesoft.speccy.cz/


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Navrat A-MOUSE
PříspěvekNapsal: 14.06.2020, 09:26 
Offline
Pan Štábní
Uživatelský avatar

Registrován: 12.05.2013, 21:39
Příspěvky: 1984
Bydliště: Praha
Has thanked: 85 times
Been thanked: 255 times
Jak jsi k tomu znovuzrozeni napadu o Amiga mysi dosel? Me se to celkem zamlouva, navic ta mys, nebo interface pro ps2, jde sehnat celkem v pohode, coz taky popisujes a podle me uz k tomu neni treba nic dalsiho vymyslet. Uz jen ten software a tady jsi urcite svetova jednicka, bwz jakekoliv nadsazky.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Navrat A-MOUSE
PříspěvekNapsal: 14.06.2020, 10:17 
Offline
Pan Štábní

Registrován: 29.06.2013, 16:52
Příspěvky: 1614
Has thanked: 31 times
Been thanked: 357 times
Doda píše:
Jak jsi k tomu znovuzrozeni napadu o Amiga mysi dosel? Me se to celkem zamlouva, navic ta mys, nebo interface pro ps2, jde sehnat celkem v pohode, coz taky popisujes a podle me uz k tomu neni treba nic dalsiho vymyslet. Uz jen ten software a tady jsi urcite svetova jednicka, bwz jakekoliv nadsazky.


Spis jsem na to sam. Jen jsem si hral s ovladacem a-mouse a zjistil jsem, ze neni potreba az tolik zatezovat procesor. Uprava her je temer stejna jako u k-mouse.

_________________
http://velesoft.speccy.cz/


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Navrat A-MOUSE
PříspěvekNapsal: 14.06.2020, 10:26 
Offline
Pan Štábní

Registrován: 29.06.2013, 16:52
Příspěvky: 1614
Has thanked: 31 times
Been thanked: 357 times
Ovladac a-mouse ma jednu vyhodu a tou je fakt, ze kdyz prestaneme poustet ovladac a pobezi treba nejake intro nebo jiny kod po delsi dobu, po opetovnem spusteni ovladace se pozice mysi nezmeni, ikdyz jsi mezitim mysi pohyboval. Tedy zmeni se, ale jen maximalne o jeden posun/pixel, coz je zanedbatelne. Tedy driver si drzi posledni pozici mysi. Zatimco k-mouse si souradnice pocita hardwarove nezavisle na zx, takze kdyz driver na cas prerusis, mys ti ulitne...

_________________
http://velesoft.speccy.cz/


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Navrat A-MOUSE
PříspěvekNapsal: 14.06.2020, 11:05 
Offline
Pan Štábní

Registrován: 29.06.2013, 16:52
Příspěvky: 1614
Has thanked: 31 times
Been thanked: 357 times
A ted neco malu k tomu jak softwarove detekovat pohyb.

Na kempston joystick portu je A-MOUSE viditelna takto:
D0 a D2 jsou stavy clonek mysi pro pohyb v ose X
D1 a D3 zase clonky pro osu Y
D4 je leve mysi tlacitko
vyznam vyssich bitu D5-D7 se muze lisit podle typu kempston interface. Napriklad ZAXON u DIVMMC pouziva fire 2(prave mysi tlacitko) na D7. Stejne to ma ZX Omni.
Ostatni to maji normalne, tedy fire2 na D5, fire 3(prostredni tlacitko) na D6.
Treti tlacitko mysi nebyva u her potreba, kolikrat ani to druhe. Tak jsem se rozhodl u ovladace funkci vsech tlacitek na bitech D5-D7 sjednotit na funkci fire2. Proste leve tlacitko funguje jako leve a vsechny ostatni tlacitka mysi funguji jako prave. Furt lepsi reseni nez tam pridavat nejake menu s vyberem typu interface a modifikovat zbytecne driver.
Tak to by bylo o portu, ted k funkci.

Detekce pohybu funguje na principu porovnani predchoziho stavu s aktualnim.
Kdyz pohybujeme mysi, odpovidajici dvojice clonek (pro osu X nebo Y) se meni v tomto poradi:
00,01,11,10 a dale se opakuje.. 00,01,11,10,00,01,11,10...
Pri obracenem smeru zase v opacnem poradi, napriklad:
10,11,01,00 a dale .. 10,11,01,00,10,11....
Nas tedy pro pohyb zajimaji jen prvni 4 bity portu 31 (D0-D3).
Muzeme si do ovladace ulozit tabulku, a z ni vycist smery pohybu.
Offset tabulky vytvorime jednoduse. Nacteme z pameti predchozi stav portu 31 a prvni 4 bity umistime treba do registru L na bity D7-D4. Pak nacteme aktualni stav portu 31 a prvni 4 bity umistime do registru L na pozici D3-D0. Ted mame v registru L jak stav predchozi tak aktualni. Do registru H dame vyssi bajt adresy tabulky. No a (HL) nam nacte bajt z tabulky, kde mame nejakou nasi hodnotu, ktera nam rekne kam se mys pohybuje. Nevyhodou je zde velikost tabulky 256 bajtu (16x16). Tabulku muzeme zmensit na 16 bajtu i mene.

_________________
http://velesoft.speccy.cz/


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Navrat A-MOUSE
PříspěvekNapsal: 14.06.2020, 11:10 
Offline
Pan Štábní
Uživatelský avatar

Registrován: 12.05.2013, 21:39
Příspěvky: 1984
Bydliště: Praha
Has thanked: 85 times
Been thanked: 255 times
VELESOFT píše:
Ovladac a-mouse ma jednu vyhodu a tou je fakt, ze kdyz prestaneme poustet ovladac a pobezi treba nejake intro nebo jiny kod po delsi dobu, po opetovnem spusteni ovladace se pozice mysi nezmeni, ikdyz jsi mezitim mysi pohyboval. Tedy zmeni se, ale jen maximalne o jeden posun/pixel, coz je zanedbatelne. Tedy driver si drzi posledni pozici mysi. Zatimco k-mouse si souradnice pocita hardwarove nezavisle na zx, takze kdyz driver na cas prerusis, mys ti ulitne...


Tohle snad nelze nazvat vyhodou nebo dokonce velkou vyhodou. Me tahle vlastnost prijde nepodstatna.

Podle me je velka vyhoda, ze nepotrebujes k-mouse interface.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Navrat A-MOUSE
PříspěvekNapsal: 14.06.2020, 11:19 
Offline
Óm Nejvyšší

Registrován: 22.05.2013, 21:14
Příspěvky: 3675
Bydliště: Bratislava
Has thanked: 373 times
Been thanked: 798 times
VELESOFT píše:
Ovladac a-mouse ma jednu vyhodu a tou je fakt, ze kdyz prestaneme poustet ovladac a pobezi treba nejake intro nebo jiny kod po delsi dobu, po opetovnem spusteni ovladace se pozice mysi nezmeni, ikdyz jsi mezitim mysi pohyboval. Tedy zmeni se, ale jen maximalne o jeden posun/pixel, coz je zanedbatelne. Tedy driver si drzi posledni pozici mysi. Zatimco k-mouse si souradnice pocita hardwarove nezavisle na zx, takze kdyz driver na cas prerusis, mys ti ulitne...
Ale toto osetrit je predsa jednoducha softwerova uprava v driveri K-mouse, takze ako nejaky vazny problem to rozhodne nevidim.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Navrat A-MOUSE
PříspěvekNapsal: 14.06.2020, 11:50 
Offline
Pan Štábní

Registrován: 29.06.2013, 16:52
Příspěvky: 1614
Has thanked: 31 times
Been thanked: 357 times
Busy píše:
VELESOFT píše:
Ovladac a-mouse ma jednu vyhodu a tou je fakt, ze kdyz prestaneme poustet ovladac a pobezi treba nejake intro nebo jiny kod po delsi dobu, po opetovnem spusteni ovladace se pozice mysi nezmeni, ikdyz jsi mezitim mysi pohyboval. Tedy zmeni se, ale jen maximalne o jeden posun/pixel, coz je zanedbatelne. Tedy driver si drzi posledni pozici mysi. Zatimco k-mouse si souradnice pocita hardwarove nezavisle na zx, takze kdyz driver na cas prerusis, mys ti ulitne...
Ale toto osetrit je predsa jednoducha softwerova uprava v driveri K-mouse, takze ako nejaky vazny problem to rozhodne nevidim.


Za zadny vazny problem to neoznacuju. Je to jen drobna vyhoda (z meho pohledu, kdyz uz to vsechno predelavam sam). U k-mouse musis vedet, ze neco po delsi dobu prerusilo spousteni ovladace (napriklad se zakaze preruseni) a hned pred pri prvnim spustenim je pak dobre k-mouse vycentrovat, tedy ignorovat odchylku v pohybu, aby kurzor neulitnul kamsi do pryc. Toto u A-MOUSE nehrozi.
Je to vyhoda ale i nevyhoda, zalezi na software.

Stejne jako amiga mys jde pouzit i atari mys, ktera ma jen jine rozlozeni bitu clonek na portu 31. Lisila by se jen tabulka.

_________________
http://velesoft.speccy.cz/


Naposledy upravil VELESOFT dne 14.06.2020, 14:07, celkově upraveno 1

Nahoru
 Profil  
 
 Předmět příspěvku: Re: Navrat A-MOUSE
PříspěvekNapsal: 14.06.2020, 12:31 
Offline
Pan Štábní

Registrován: 29.06.2013, 16:52
Příspěvky: 1614
Has thanked: 31 times
Been thanked: 357 times
Par odkazu:

USB to AMIGA MOUSE adapter
https://www.waitingforfriday.com/?p=827

https://www.domesday86.com/?page_id=245#Schematic

stejny projekt prekreslil i Lotharek:
https://lotharek.pl/productdetail.php?id=244

Ja vim, je to drazsi, ale co jsem koukal, tak kolem 200Kc by vysel material na 1 kus, to je pohoda, ne ? Navic si pripojite treba bezdratovou mys a vubec vyber mysi pak neni tak omezeny jako u PS/2.

Tyto USB redukce jsem az tak nezkoumal, ale myslim, ze asi nepodporuji soucasne pripojeni joysticku. To by slo ale dodelat.
V kazdem pripade plati, ze mit Amiga mys ci nejaky ten prevodnik pripojeny trvale v kempston konektoru misto joysticku asi neni uplne nejidealnejsi reseni. Nektery software proste rovnou pouziva kempston joystick nebo ho detekuje. Prave proto jsem zminil, ze by bylo dobre nechat vyrobit redukci, ktera ma jak konektor pro mys, tak pro joystick.

_________________
http://velesoft.speccy.cz/


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Navrat A-MOUSE
PříspěvekNapsal: 14.06.2020, 14:01 
Offline
Pan Štábní

Registrován: 29.06.2013, 16:52
Příspěvky: 1614
Has thanked: 31 times
Been thanked: 357 times
Nejake ty ovladace pro A-MOUSE:

http://zxmagazin.80.cz/1995/07/novy-ovladac-pro-mouse.html

ZXM strana 45 (v PDF strana 47)
https://z00m.speccy.cz/files/ZXMagazin-1994-3-4.pdf

Cygnus:
https://cygnus.speccy.cz/popis_mysi.php

_________________
http://velesoft.speccy.cz/


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Navrat A-MOUSE
PříspěvekNapsal: 14.06.2020, 14:51 
Offline
Pan Štábní

Registrován: 29.06.2013, 16:52
Příspěvky: 1614
Has thanked: 31 times
Been thanked: 357 times
Jeste jedna idea, jak teoreticky 2x snizit pocet testovani stavu clonek, nebo naopak 2x zvysit presnost driveru.

Koukne se ne priklad, jak se pri pohybu mysi meni stavy clonek:
00,01,11,10,00,01,11,10...

Kdyz tedy predchozi stav clonek byl napriklad 11 a nove nactu 00, podle posloupnosti je jasne, ze doslo k pohybu (ted placnu z hlavy) treba vpravo. Naopak, kdyz predchozi stav byl 11 a nactu 01 tak je smer opacny, tedy treba vlevo. Kdyz ale mysi budeme pohybovat dostatecne rychle a mezi dvema ctenimi portu se zmeni stav clonek treba o dva kroky, pak dojde k situaci, ze predchozi stav byl 11 a ted nacteme 00. Logicky se neda presne urcit, jakym smerem se mys pohnula, protoze dva kroky vlevo i vpravo je uz stejna hodnota clonek. Ale mi si muzeme v ovladaci vzdy pri pohybu zapsat posledni smer pohybu a v pripade tohoto "preskoku o dva stavy" muze ovladac stav zpracovat jako pohyb o dve "jednotky" smerem, ktery byl detekovan posledne. Takto upraveny ovladac uz zvladne 2x rychlejsi pohyb mysi, nebo naopak pri stejne citlivosti muze byt driver 2x mene casto spousteny. Lepsi ale bude prvni metoda, tedy neochcavat to. Totiz original Amiga mys je hodne pomala a kdyz pripojite PC mys s dnes jiz beznym 1000DPI, pak to je uz frmol a kurzor lita svizne jako na PC. S vyssim DPI tyto PS/2 ci USB konvertory take meni stavy clonek nekolikanasobne rychleji a ovladac A-MOUSE by s tim tedy mel pocitat. Zkousel jsem na ZX vsechen stary software pro A-mys a s rychlou PC mysi kupodivu problem nebyl.

_________________
http://velesoft.speccy.cz/


Nahoru
 Profil  
 
Zobrazit příspěvky za předchozí:  Seřadit podle  
Odeslat nové téma Odpovědět na téma  [ Příspěvků: 24 ]  Přejít na stránku 1, 2  Další

Všechny časy jsou v UTC + 1 hodina [ Letní čas ]


Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 23 návštevníků


Nemůžete zakládat nová témata v tomto fóru
Nemůžete odpovídat v tomto fóru
Nemůžete upravovat své příspěvky v tomto fóru
Nemůžete mazat své příspěvky v tomto fóru
Nemůžete přikládat soubory v tomto fóru

Hledat:
Přejít na:  
Založeno na phpBB® Forum Software © phpBB Group
Český překlad – phpBB.cz