Press "Enter" to skip to content

Speccy2010 a firmware

Minule sme sa pozreli na zub aktualizácii firmware pre ZX-EVO a keďže sa vďaka Martinovi Bórikovi pohli ľady aj v oblasti firmware pre Speccy2010, dnes si občerstvíme vedomosti o aktualizácii tohto stroja.

Ako už iste viete, Speccy2010 je šikovná mašinka, akurát po prvom boome jeho firmware zastagnoval, pretože jeho autor SYD sa na to vyflákol. Jednému z najlepších klonov tak ostalo niekoľko neduhov, ktoré doslova nasierali. Menujme hlavne rozbité časovanie v móde ZX Spectrum 128k (a vlastne i 48K), neexistujúci flashload TAP súborov (rovnako zápis do nich), či nefunkčné NMI. Našťastie si opustený firmware zobral pod krídla Martin Bórik a aktívne sa venuje jeho vývoju. Prvé vylepšenia sú veľmi sľubné, hoci po dnešnom zlete SinDiKATu (28.7.2018) sa ukázalo, že si to vypýta ešte spústu práce. Každopádne je release 1.2.1 silno použiteľný už teraz a má zmysel ho vyskúšať. Pribudlo tam totiž divMMC a riadny súborový manažér, takže je konečne vhodnejšie pre zvyky nášho regiónu.

Ale poďme k veci. Čo všetko vlastne budete potrebovať? Speccy2010 má v sebe FTDI chip, preto si stiahnite driver virtuálneho COM portu priamo od FTDI. Vo Win10 ho s najväčšou pravdepodobnosťou potrebovať nebudete, ale pre ostatné verzie Win (7, 8, 8.1) sa vám asi šikne. Potom budete potrebovať nejaký sériový terminál, napríklad Tera Term, alebo podobný. Ja úspešne používam na tento účel patrične skonfigurovaný PuTTy. No a ako posledné potrebujete klasický prepojovací kábel USB A-B, rovnaký akým sa pripája k PC tlačiareň.

Rozbalíte si niekam nový firmware (pokiaľ možno, všetko do jedného adresára), nainštalujete terminál a ovládače. Pripojte vypnuté Speccy2010 pomocou USB kábla k PC a počkajte kým Windows rozozná virtuálny COM port. Cez správcu zariadení sa pozrite aké má číslo a nastavte si podľa toho terminál (u mňa COM3), pričom komunikačná rýchlosť je 115200bd. Spustite terminál, zapnite Speccy2010 a v termináli by sa vám mali začať vypisovať podobné správy:

To znamená, že máte všetko správne nakonfigurované a môžete pristúpiť k aktualizácii firmware. Tá spočíva v dvoch krokoch. Najprv si pozrite, akú verziu Speccy Bootu máte. Ak vám tam svieti Speccy2010 boot ver 1.1!, boot máte aktuálny a prvý krok sa vás netýka. Ja som tam však mal boot 1.0, takže bolo potrebné ho aktualizovať. Robí sa to priloženým programčekom str750prog.exe. Speccy2010 vypnite, založte switch pri SD slote, zavrite terminál, aby sa uvoľnil port, spustite príkazový riadok, vojdite do adresára kde máte príslušné súbory, zapnite Speccy2010 a boot si aktualizujte týmto príkazom:

str750prog.exe --port COM3 --write --address 0x20000000 speccy2010_boot.bin

O úspechu, alebo neúspechu aktualizácie vás programček informuje. Potom rozpojte switch pri SD slote, a stlačte reset button, alebo Speccy2010 vypnite a znova zapnite. Ak si pred tým spustíte terminál, môžete si skontrolovať, či máte boot 1.1.

Nasleduje druhý krok, ktorým si aktualizujete samotné jadro FPGA a ARM. Je to triviálne – na SD kartu skopírujte obsahy archívov speccy2010_v1.2.1.zip a speccy2010_v1.2.1_sdcard.zip a necháte z nej Speccy2010 naštartovať. A voilá, máte nový firmware. Toto je aj jediná odporúčaná cesta, ako aktualizovať firmware v budúcnosti (preplácnuť na SD karte súbory speccy2010.bin, .rbf, .hlp a .ini novšími verziami, booter už sa o všetko postará sám).

Do budúcna sa najväčšie zmeny budú diať hlavne v obsahu ARMu. Ak sa nezmení FPGA jadro, zmeny týkajúce sa čisto ARMu sa dajú elegantne otestovať jeho preflashovaním cez kábel. Na SD karte premenujete súbor speccy2010.bin trebárs na speccy2010.old a nový speccy2010.bin si nahráte do Speccy2010 rovnako ako boot. Speccy2010 vypnete, založíte switch pri SD slote, nezabudnite zavrieť terminál aby sa uvoľnil port, spustíte príkazový riadok, zapnete Speccy2010 a z adresára kde máte príslušné súbory spustíte flasher:

str750prog.exe --port COM3 --write --address 0x20008000 speccy2010.bin

Potom rozpojíte switch pri SD slote a Speccy2010 vypnete a zapnete. Ak sa chcete po otestovaní vrátiť k pôvodnej verzii, jednoducho na SD karte späť premenujete speccy2010.old na speccy2010.bin, Speccy2010 vypnete a zapnete a po boote tam máte pôvodný obsah ARMu.

Ako vidíte nie je to žiadna raketová veda, takže sa toho vôbec netreba báť a aj keď niečo popletiete, nemôže sa stať, že si Speccy2010 bricknete. Tým flasherom totiž ide vždy oživiť – flashnete nanovo boot, dáte firmware na SD kartu a ak je doska dobrá, tak sa to po zapnutí musí rozbehnúť.

A to je asi tak všetko. Ja osobne verím, že Martin dnes objavené prekážky prekoná, takže sa teším na všetko nové, čo v Speccy2010 pribudne. Ak to dobre pôjde, bude to klon, ktorý v mnohom prekoná i Pentevo.

2 Comments

  1. Díky za článok. Som rád, že firmware funguje. Jediné, čo by mohlo robiť problém, by mohli byť ruské klony, hlavne teda Scorpion, okolo ktorého bolo čosi exotické ohľadom NMI a nie som si stopercentne istý tým, či to privedením plnohodnotného NMI na Z80 prežilo, teda ostalo fungovať.
    Sám som narazil a zapochyboval, či fungovanie NMI v Pentagone je vôbec žiadúce. Je o mne známe, že tieto ruské mašiny veľmi neľúbim a nepoznám ich detaily, takže netuším čo a ako má fungovať. Kto v tom máte prehľad, prosím, skúste to pozrieť a prípadne mi napísať, alebo na github pridať issue [https://github.com/mborik/speccy2010/issues].

  2. z00m z00m

    To exotické NMI je tam kvôli Betadisku – simuluje tzv. Magic Button.

Leave a Reply

Your email address will not be published. Required fields are marked *