KMouse tester (2)

Úvod

KMouse tester je jednoduchý program určený ke kompletnímu prověření funkčnosti Velesoftova Kempston Mouse interface včetně připojení dvou KMouse v režimu slave/master a včetně dalších přidaných vlastností interface.

KMouse tester 1

Stará 1. verze je přizpůsobena interface z období 2005 až 2007, který má jiný způsob přepínání slave/master režimu, dnes už nepoužívaný. Upravených her bylo málo, uživatelů taky. Program ponechávám prozatím ke stažení.

Obrázky z verze 1 pořízené v emulátoru.

screenshot screenshot

Program je napsán prakticky pro libovolné ZX Spectrum k němuž lze KMouse připojit. Prakticky byl otestován na ZX Spectrum 128k +2 a v emulátoru na ZX Spectrum 48k.

KMouse tester 2

Aktuální 2. verze testeru je modifikována pro přepracovanou verzi KMouse, kterou Velesoft zveřejnil a začal dodávat zhruba 05/2008. Při úpravě jsem do programu doplnil i možnost testu dalších vlastností KMouse rozhraní, které přibyly, tj. obou joysticků a portů do nichž se zapisuje hodnota zapsaná na stránkovací port paměti ZX Spectra 128k - 32765 (#7FFD).

Softwaru s podporou dvou myší nebylo mnoho, snad jen Velesoftovy předělávky her a pokud je mi známo, tak nyní už je vše bez výjimky upraveno pro novou verzi KMouse.

Obrázky z verze 2 pořízené na ZX Spectru s připojenou KMouse.

screenshot screenshot

Test myší lze spustit ve dvou různých režimech. Buď jen master, nebo obě myši - je sice možné připojit jen interface nastavený jako slave, což funguje a program i detekuje, ale prakticky taková kombinace není pravděpodobná, nebude totiž fungovat s naprostou většinou softwaru bez jeho úprav. Proto pro tuto možnost tester nenabízí speciální test.

screenshot screenshot

Kromě myší lze otestovat i joysticky, které lze přes KMouse interface připojit. Kempston přes KMouse nastavenou jako master, Fuller přes KMouse nastavenou jako slave.

screenshot screenshot

Test portů KMouse interface do nichž se ukládá hodnota z portu 32765 (#7FFD). Přímé čtení tohoto portu na ZX Spectrum 128k není možné, proto zaznamenanou hodnotu KMouse "nabízí" ke čtení na jiných portech odkud je možné číst bez rizika. Zároveň tyto porty lze využít i k detekci přítomnosti interface.

screenshot screenshot

Na čem to běží?

Skoro na čemkoliv. Základní funkce, test myší a joysticků by opět měl běžet na všem, co má alespoň 48kB RAM a víceméně standardní ROM - kvůli čtení klávesnice. Potenciálně lze program upravit i pro ZX Spectrum 16kB, ale jelikož dosud nikdo neprojevil zájem, tak není důvod. Zdrojáky jsou ostatně k dispozici.

Funkčnost jsem testoval ve Fuse emulátoru, kromě 128k +2 (navíc mám ISOROM a deprchátor "Umbrella", což chování lehce ovlivňuje) nemám reálné stroje na nichž by to mohlo běžet, nicméně Fuse emulátor je docela kvalitní a lze mu věřit. Kdyžtak mi napište.

strojstav
ZX Spectrum 48kok, bez problémů
ZX Spectrum 128k+ (+2)ok, bez problémů
ZX Spectrum +2A (+3)ok, bez problémů
Timex TC2048Timex vrací na portech KMouse hodnoty z Kempston Joysticku, KMouse není zřejmě (snadno) připojitelná
Timex TC2068 a TS2068Zhroutí se po vykreslení menu, protože tester volá rutinu v ROM, která se u Timexu od ZX Specter výrazně liší.
Pentagon 128ok, bez problémů
Pentagon 512 a 1024ok, bez problémů
Scorpion ZX256ok, bez problémů

Program samozřejmě funguje i bez připojené KMouse, nebo se starší verzí, která neumí zaznamenávat hodnoty z 32765 (#7FFD) a není detekovatelná. Prostě bude fungovat jen to, co interface umí a při testu portů se zobrazí 255 místo zapsaných hodnot.

Při testu myší, které nepodporují kompatibilní slave/master režim se pak velmi pravděpodobně bude interface chovat jako jedna jediná KMouse, resp. jako dvě KMouse, které vrací identické hodnoty. Takže i šipka se bude u obou vykreslovat na stejné místo a splyne do jedné, podobně se bude chovat i scroll.

Znamým problémem je i kolize interface UR-4 s Fuller Joystickem. Pokud je interface UR-4 připojení, tak na portu 127 vrací jakýsi šum složený z hodnot na všech svých IO portech (většinou jen 0) a to se pak jeví jako zvolené směry a tlačítka Fuller Joysticku. Není to chyba programu, ale hardwaru. Stejně tak bude kolidovat UR-4 s čipem I8255 místo MHB8255, jen s tím rozdílem, že bude stabilně vracet obsah řídícího portu 127.

Poděkování

Děkuji tímto Velesoftovi za důkladné otestování programu na reálném hardwaru, který jsem v době psaní neměl k dispozici, spoustu užitečných rad a část kódu pro detekci KMouse a spoustu objevených chyb.

Download

Opravené chyby a aktualizace:

  • 13.9.2006 - program zveřejněn ve verzi pro dvě myši
  • 16.5.2008 - text přepsán s ohledem na novou verzi testeru
  • 17.5.2008 - drobná aktualizace, oprava chybky při testu #7FFD
  • 23.6.2008 - drobná aktualizace, změna portu KMouse pro MB02

[ Zpět na hlavní stránku ]

Cygnusova stránka o ZX Spectru a kompatibilních počítačích byla napsána (přepsána) výhradně pomocí svobodného Open Source softwaru. V případě že naleznete chybu, nebo byste rádi cokoliv co se ZX Spectrem souvisí, neváhejte mi napsat na některý z mých emailů, nebo pracovně do zaměstnání. Stručně o mém webu se můžete dočíst zde.