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.
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.
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.
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.
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.
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.
stroj | stav |
---|---|
ZX Spectrum 48k | ok, bez problémů |
ZX Spectrum 128k+ (+2) | ok, bez problémů |
ZX Spectrum +2A (+3) | ok, bez problémů |
Timex TC2048 | Timex vrací na portech KMouse hodnoty z Kempston Joysticku, KMouse není zřejmě (snadno) připojitelná |
Timex TC2068 a TS2068 | Zhroutí se po vykreslení menu, protože tester volá rutinu v ROM, která se u Timexu od ZX Specter výrazně liší. |
Pentagon 128 | ok, bez problémů |
Pentagon 512 a 1024 | ok, bez problémů |
Scorpion ZX256 | ok, 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
- kmouse-tester.tar.gz - program verze 1 v TAP + zdrojové kódy - GZIP 33kB Zastaralé! Jen pro nepřeprogramovaný interface z roku 2007 a starší.
- kmouse_tester_2.tar.gz - program verze 2 v TAP + zdrojové kódy - GZIP 100kB
- kmouse_tester_2-1.tar.gz - program verze 2.1 v TAP + zdrojové kódy - GZIP 100kB
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