Hardware pro Sinclair QL: QIMSI

Vývoj hardware pro “neúspěšný a zapomenutý” počítač se nezastavil.

Spousta lidí nepoužívá moderní, obtížně dostupné náhrady, ale originální počítače od Sinclaira, nicméně je chtějí požívat na úrovni současné doby.

Proto Peter Graf, autor Q40 a Q60, “moderních” klonů sinclairu QL (za “moderních” dosaď 1996 a 1999), přišel s drobným interface nazvaným QIMSI.


(zdroj)

QIMSI je opravdu drobnost, maličká destička, zasune se do slotu pro rozšiřující ROM modul a je téměř hotovo.

(Téměř proto, že QIMSI obsahuje jednu věc, pro jejíž využití je třeba malý zásah do počítače – přeštípnutí jednoho pinu a přidat jeden drát, bude ještě zmíněno později.)

Co na QIMSI najdeme?

To hlavní je slot na mikroSD kartu.

Úložiště je v podstatě kompatibilní se zařízením QL-SD.

Na této kartě (musí mít partition, první partition musí být FAT32, soubory nutné pro QL musí být v prvních 16 položkách adresáře a defragmentované) se může nacházet až 8 QLWA kontejnerů, tedy image harddisku WIN1_ až WIN8_.

Protože se QIMSI vkládá do ROM portu, nese si část software v sobě a většina funkcí je tak k dispozici hned po zapnutí počítače, z mikroSD karty se tak automaticky bootuje.

Protože prostor ROM slotu zabírá obslužný software QIMSI, musí se Toolkit II nahrávat do RAM (nejde použít Toolkit II mapovaný do prostoru ROM slotu; QIMSI nejde použít souběžně QL-SD, které taky svůj ovladač mapuje do prostoru ROM slotu).

Už toto úložiště je skvělá věc, ale na QIMSI je toho víc.

Najdeme zde dva mikroUSB konektory.

Jeden z konektorů slouží pro připojení myši, využitelné pro Pointer Environment a tudíž i SMSQ/E.

Podporováno je i kolečko na myši!

Myš musí zvládat PS/2 protokol (starší USB myši to většinou umí, novější mohou mít problém, existuje seznam otestovaných myší), lze použít i PS/2 myš přes redukci na USB.

Ovladač myši není v ROM, nahrává se až po zavedení Toolkitu a Pointer Environmentu či po nabootování SMSQ/E.

Druhý mikroUSB konektor je pro připojení klávesnice.

Jako v případě myši, klávesnice musí podporovat PS/2 protokol, tedy musí jít o USB klávesnici, která tento protokol zvládne, nebo o PS/2 klávesnici připojenou přes redukci na USB.

Ovladač QIMSI klávesnice je už zahrnut v SMSQ/E verze 3.39 a vyšší.

S Minerva ROM se nahrává ovladač klávesnice z mikroSD karty, funguje opravdu jen s Minerva ROM, nespolupracuje se staršími verzemi ROM (MG, JS, JM, …).

Přepínání klávesnic provádí příkaz Basicu KBD_PS2 a KBD_QL, rozložení kláves externí klávesnice lze měnit povelem KBD_TABLE_PS2 (momentálně podporuje americkou, britskou a německou klávesnici).

Další drobností, kterou bychom na QIMSI mohli najít, je osmibitový zvukový výstup.

Ovšem na první pohled jej nenajdeme.

Jeden z pinů ROM portu (A1, spodní vpravo při pohledu od desky počítače) má být nevyužit, tedy v některých revizích QL nezapojen nebo je na něj přivedeno +5V.

Tento pin je potřeba v počítači přerušit a propojit drátkem na konektor reproduktoru.

Zvuk je posílán na tento pin, neupravenému počítači neublíží, po správně provedené úpravě pak hraje na reproduktoru spolu s původním zvukovým výstupem QL.

Zvukový výstup je zde označen jako SS (sampled sound), což je podle mne matoucí, mohlo by se to plést se SSS (sampled sound system), což je standardizovaný způsob, jak na emulátorech a moderních QL klonech (Q40, Q60, Q68) přehrávat samply.

SS na QIMSI má softwarovou podporu mnohem omezenější a tak třeba zvuk z her, které SSS využívají, zatím na SS (tedy na QIMSI) hrát nebude.

V podstatě zatím existuje jen jednoduchý přehrávač souborů s osmibitovými samply (_ub, tedy unsigned byte), při multitaskingu s jinými úlohami dochází k lupání nebo přerušování zvuku.

(Pasáž se zvukem mi přijde jako celkem pakárna.

Autorem “SSS” je stejný člověk, který dělal QIMSI.

Proč vymyslí a implementuje standard, objevující se v jeho počítačích Q40, Q60 a Q68, když do svého dalšího dílka umístí nekompatibilní bazmek?)

Sice je to asi vše, co běžný uživatel využije, ale na QIMSI je toho víc.

Do použitého FPGA se totiž vešel procesor 68000 na 40 MHz.

Při startu slouží k inicializaci PS/2 myši, ale pak už se nevyužívá a je k dispozici uživateli.

Nedá se použít přímo k akceleraci, ale je možné jej využít jako koprocesor.

Jeho výhodou je, že se tento koprocesor programuje stejnou instrukční sadou jako QL samotné.

Prostor pro ROM má 32 KiO, jeho RAM má velikost jen 12 KiO.

K dispozici má sériový port 115200 Bd, kterým je možné komunikovat s dalšími stroji, dále vstupně/výstupní jednobitový port.

Může komunikovat i přes USB nebo přistupovat na mikroSD kartu, pokud tak už neudělalo QL – to se pak tyto prostředky pro koprocesor zablokují.

Naopak, sériový port a vstupně/výstupní port koprocesoru nejsou pro QL přímo přístupné.

Program je do koprocesoru možno dostat několika způsoby.

Při startu počítače, existuje-li soubor Q68_ROM.SYS, se nahraje do prostoru pro až 32 KiO ROM koprocesoru a spustí se.

Pokud tento soubor není, očekává data na sériovém portu, přesněji nejprve délku dat, pak samotný obsah k uložení do ROM.

S QL komunikuje koprocesor přes ROM port, ze strany koprocesoru jde o jednoduchý zápis celých bajtů.

Ze strany QL jde v podstatě o emulaci sériového přenosu po bitech, protože z ROM portu lze číst, ale ne do něj zapisovat.

Zápis do jednotlivých registrů je tudíž rozdělen na dvě paměťové pozice, značené 0 a 1.

Čtení z jedné adresy zapíše do registru bit 0, čtení z druhé adresy zapíše do registru bit 1, po zápisu osmi bitů se bajt odešle do fronty, odkud jej koprocesor může vyčítat.

Pro využití zabudovaného rychlého sériového portu existuje ovladač QIMSI-SER4, který sériák zpřístupní jako zařízení SER4_, umožňující přenosovou rychlost až 230400 Bd (k nastavení parametrů slouží prográmek qimsi_sercfg).

Tím ale vývoj hardware pro QL nekončí.