Pracuji na emulátoru AZ Spectrum na ARM Cortex M3 procesoru. Vlastně celý ZX Spectrum by byl tvořen jedním ARM mcu + 64 kB SRAM + SD kartou s programy a několika konektory (monitor,repro,AT klávesnice). A teď dumám nad klávesnicí. Klasická klávesnice má mnoho různých funkcí přiřazených jednomu tlačítku, což by si u normální AT klávesnice nikdo nepamatoval. Proto bych to asi řešil jinak – psal by se normální text a ten by se po dopsání celého klíčového slova tokenizoval – prý byla taková modifikace ROM. Ví prosím o ní někdo? Předem děkuji za info.
LEC ROM ma dva rezimy psani prikazu. Bud se pise klasicky po pismenkach (podpora zkratek!) anebo se pozivaji „TOKENY“. Mezi rezimy klavesnice se prepina prikazem FORMAT „K“.
Priklad, pokud napisi tento text:
10 bo.7:pa.r.*8:cls:pr.pe.23609:dr.10,10
LEC REM jej prevede na:
10 BORDER 7: PAPER RND*8: CLS: PRINT PEEK 23609: DRAW 10,10
Tokenizovat umí i originál 128k BASIC, resp. rozšíření Sinclair BASICu pro ZX Spectrum 128k. Ale zdrojáky bohužel nemám a netuším, kde hledat … nicméně kdysi jsem na ně narazil. (48k BASIC je samozřejmě zdokumentovaný velmi podrobně).
Mimochodem, nemyslím, že by bylo potřeba zrovna tohle řešit. V BASICu se už moc neprogramuje, spíš se používá jako zavaděč a těch několik základních příkazů si lze snadno zapamatovat, případně použít polepky od Sintechu.
No, pak nějak nechápu, komu je emulátor postavený na ARMu určen … nedovedu si představit neznalého uživatele, který začíná se ZX Spectrem tímto způsobem. Už jen proto, že musí vědět o existenci příkazu LOAD "", způsob zadání už mi nepřipadá tolik zásadní.
Výsledek vývoje mne samozřejmě velmi zajímá, ale opravdu si nejsem jistý pro koho vlastně je. Např. Fuse emulátor lze spustit na kdečem, včetně linuxových placek bez klávesnice s Androidem a spol. Skalní fanda, mezi které se počítám, si zas obvykle nevystačí s prostým spouštěním aplikací a her, chce připojovat periferie. Nebo alespoň do toho snadno dostat data (audio MGF, UR-4 8255, SIF, image disket na SD kartě?). Spousta lidí bude požadovat max. kompatibilitu s originálem a každý si to představuje jinak :-)
Ostatně viz. moje anketa (sorry za pokaženou češtinu, to je kvůli aktualizaci na hostingu, není čas to řešit). Z ankety kromě preference periferií vyplývá, že spousta věcí musí být vypnutelná, nebo nastavitelná, jinak to bude vyhovovat jen malé skupině uživatelů. A samozřejmě čím jednodušší a levnější, tím líp. Obsah „ROM“ by měl jít v každém případě snadno měnit.
Jedno z možných řešení takového emulátoru viz PMD od P.Chrenka. Hezké, ale s jistými omezeními, které jsou dané použitým MCU.
V podstatě chci jen říct, že to není sranda a může se na tom dost věcí „nepovést“.
Zadavat prikazy po pismenkach umi taky treba „Gosh Wonderful“ ROM, jak jsem se prave docetl v ZXPCFIN:
ftp://ftp.worldofspectrum.org/pub/sinclair/books/ZXSpectrumOnYourPCThe.pdf
Romka je treba zde:
http://www.shadowmagic.org.uk/spectrum/roms.html
BTW, v teto obsahle kolekci neni ROM ze zadneho Didaktiku. Nemate je nekdo? Bylo by zajimave archyvovat treba „chybove“ ROM pro Didaktik Gama 1987 a 1988. Didaktik Gama 1989 je celkem bezna a povedena ROM. Pokud nevite, tak ROM nahrajete na kazetu na ZX-Spectru takto:
SAVE „ROM-NAME“ CODE 0, 16384