8. septembra 2020

Speccy2010 v1.2.8

Všetko v našich životoch má začiatok a nejaký koniec. Akési vyústenie. A tak aj firmware pre Speccy2010 tento víkend dospel do svojej poslednej, finálnej verzie, ktorá je takým zavŕšením mojej snahy trvajúcej 2¼ roka. Musí to byť znamenie vesmíru, že práve 128. commitom do repozitára som uzavrel vývoj a prinášam vám verziu v1.2.8...

EDIT: Ako hovorí zákon schválností: Až keď vydáte finálnu verziu, tak to začnú uživatelia reálne používať a objavia vám chyby. A výsledok je rerelease 🤦‍♂️ ... updatnite si, prosím.

[ Speccy2010 v1.2.8 ]

Keď sa na to spätne pozriem, je až podivuhodné, že to, čo z mojej strany začalo ako zmena ovládacích kláves vo firmvéri, sa vlastne skončilo kompletným prekopaním grafického prostredia, File Managera, pridaním plnohodnotného debuggera, no hlavne implementáciou "našich" periférií DivMMC a MB-02. Platí pritom, že ide v súčasnosti o jediný klon ZX-Spectra na svete, na ktorom môžete vlastne plnohodnotne MB-02 používať. Áno, dodnes to časovanie 128k nie je zďaleka ideálne, ale s tým už nič nenarobím. Muselo by sa to od gruntu prepísať (= prejsť s T80 do asynchrónneho režimu, prekopať prístup k SDRAM, prerobiť obrazový výstup, atď...) a na to ja už nemám čas ani chuť, nehovoriac o tom, že to FPGA je už za svojimi limitmi a je len s podivom, že sa to Altera syntezátoru darí stabilizovať. Na strane druhej sa Speccy2010 môže pochváliť správnym časovaním Speccy 48k a Pentagonu - to naozaj vyšlo, aj vďaka cenným radám od Rusov.

Je jasné, že dnes, keď si môžete na stôl položiť ZX Spectrum Next a ten to na vás vybalí bambiliónom možností a HDMI výstupom, tak toto malé a veľmi jednoduché Speccy2010 v takej konkurencii vlastne nemôže obstáť. Ale hej! Ja som vďačný za to, že mne, no hlavne desiatkam ďalších užívateľov 2 roky vypĺňalo izby ZX-Spectrom - takým, ktorému netreba zakažným prespájkovať elektrolyty, meniť klávesnicové fólie a pripájať na zbernicu periférie s modlitbou, nech to bez pádov zvládne.

Zoznam zmien vo verzii 1.2.8, na ktorých má zásluhu najmä ub880d:
(rerelease zmeny zvýraznené červenou)

  • V implementácii pamäťového modelu DivMMC bola opravená chyba pri zápise do oblasti #2000-#3FFF počas aktivovaného CONMEM režimu.
  • V Debuggeri sa opravilo zobrazovanie adries relatívnych skokov nazad a test kláves Ctrl+G alebo M na zmenu adresy v dump okne debuggera.
  • Správne sa už zobrazuje pamätový model pre všetky možnosti stránkovania priestoru #0000-#3FFF, hlavne pri MB-02, ale aj ZXROM sa teraz už korektne zobrazí v 48k režime.
  • Do nastavení pribudla možnosť vypnúť testovanie joystickov, takže aj keď ste majiteľom dosky, ktorá nemá osadené konektory a pullup odpory joystickov, teraz máte možnosť si ich úplne vypnúť.
  • Opravené jadro: V implementácii procesoru Z80 sa testovalo nedokumentované IM2 so zlým opcodom. Preto nefungoval napríklad záver dema MQM3. Speccy2010 je tak prvý klon, ktorý má túto fatálnu chybu v T80 opravenú. Skúste si to na vašom Nexte, heč! 😜
  • Na disku demodisk.mbd bola vymenená verzia assemblera Prometheus, ktorú opatchoval technomorous Logout a nahradil v nej DMA presuny za obyčajný, hrejivý a tak celkovo všadepoužiteľný ldir, takže už fungujú LOAD/SAVE operácie.

Do nápovedy speccy2010.hlp som tiež doplnil popis všetkých skratiek a ich významu, ktoré sa objavujú v paneli pages v Debuggeri:

  • 'ZXROM' - 48k ROM
  • 'ZX128' - 128k ROM
  • 'TRDOS' - TR-DOS ROMka
  • 'GLKRS' - TR-DOS: Mr. Gluk Reset Service
  • 'RAM 0' - AllRAM režim Scorpionou
  • 'SCR x' - aktívne zobrazená základná (5) alebo tieňová (7) obrazovka 128k
- stránkovanie MB-02 cez port #17
  • 'BSROM' - BS-ROM (SRAM banka #00)
  • 'BSDOS' - BS-DOS (SRAM banka #01)
  • 'BNKxx' - SRAM banka #02-#1F
  • 'EPROM' - EPROM (bootstrapper)
- stránkovanie DivMMC v oblastiach #0000-#1FFF#2000-#3FFF
  • 'EP·xx' - (E)EPROM firmvér | nastránkovaná 8k banka
  • '03·xx' - MAPRAM readonly banka 3 | nastránkovaná 8k banka
  • 'AR·xx' - AllRAM režim ovládaný portom #17

PS: Ak sa vám tento projekt páči a máte účet na githube, môžete ho podporiť tým, že si ho pridáte medzi obľúbené (hviezdička). Urobíte mi tým fakt radosť.

4 komentáre:

  1. Martine, díky za ty dva a půl roku života. Pro mě je Speccy 2010 jediný moderní klon, který jsem ochotný používat, protože od moderního klonu očekávám, že mi pomůže pohodlněji používat to, na co jsem zvyklý. Nečekal jsem dvacet let na palety, osm mega paměti a 44.1kHz samply, nechyběly mi HW sprajty ovladatelné z BASICu. Normálně jsem žil svůj Speccy život, což v našich podmínkách znamenalo D40/D80 a/nebo MB-02+. MB-02 se zdrojem, trčící CF-IDE redukcí, 128 +2 s membránou, kterou musím před každým použitím rozebrat a zas složit aby všechny věci fungovaly - to není na to mít to na stole s malým dítětem v bytě. Bez Speccy 2010 bych poslední roky byl odsouzen k čistému emulátorismu a zapnutí Speccy 3x do roka na nějaké akci. Takhle můžu Speccy 2010 zapnout kdy chci, fungovat tak, jak se mi líbí. Je mi trochu líto, že hardware už na další vývoj nestačí, že projekt tímto končí, ale jsem rád, že jsi to všechno pro nás udělal. Platí, co jsem psal na Vánoce 2018 na diit.cz - pro mě je toto víc Spectrum, než cokoliv jiného vzniklého v poslední době.

    OdpovedaťOdstrániť
    Odpovede
    1. Vďaka za tieto slová. Bola to pre mňa veľmi cenná skúsenosť a robí mi radosť to, že to dodnes niekto používa. Je škoda, že niektoré vlastnosti neprešli dostatočným testom a boli zriedka používané. Predišlo by sa tak tomu, že si včera večer po "finálnom release" našiel bug v debuggeri. 😁

      Odstrániť
  2. Tady je chyba na straně uživatelů, máme to víc používat a chyby hlásit. Přiznám se ale, že takhle detailně jsem debugger použil poprvé.

    OdpovedaťOdstrániť
    Odpovede
    1. Áno, ale ja plne chápem, že nie každý majiteľ Speccy2010 je tzv. power-user. Niekto, kto na tom vyvíja, debugguje, strieda konfigurácie, vymieňa romky, prípadne využíva všetky vlastnosti Commandera (napr. si robí poriadok na karte apod.). Ten by mi tie chyby vychytal hneď, no takto som ich občas objavil sám, ale keď som si to hneď niekam nezapísal, stačilo, že ma vyrušil rodinný príslušník a už to bolo fuč.

      Odstrániť