Vlákno názorů k článku Kouzlo minimalismu potřetí: vývoj her a dem pro slavné ZX Spectrum od vlado - Z80 je procesor, na ktorý som napísal najviac...

  • Článek je starý, nové názory již nelze přidávat.
  • 7. 2. 2023 9:07

    vlado

    Z80 je procesor, na ktorý som napísal najviac kódu v asembleri. Najprv to bol Hisoft, neskôr Prometheus.
    Oproti 8080A som najviac využíval relatívne skoky, samozrejme aj djnz (nad registrom B). Konečne som mohol písať realokovateľné rutiny bez opakovanej kompilácie. Využívali sme to hlavne pri vkladaní rutín do BASICovského riadku. Štandardný začiatok BASICu bol na 23755, prvý riadok za REM príkazom začínal na 23760, ale ZX Spectrum vedel začiatok BASICu posunúť, napríklad pri disketovej mechanike zo Skalice celý BASIC posúvalo otvorenie kanála, kde každý kanál posunul začiatok BASICu a buffer (512bytov) + nejaká réžia.
    Index registre boli pomalšie, využíval som ich v špecifických prípadoch. V tom čase som mal v hlave počet bajtov aj taktov procesora na každú inštrukciu a využíval som ich keď to bolo výhodnejšie pamäťovo alebo rýchlejšie. Bolo to celkom často. IX bol úplne voľný, používal ho tuším iba HISOFT Pascal na lokálne premenné, ale IY som mohol využívať iba pri zakázanom prerušení, prípadne keď som prerušenie obsluhoval ja a keď som vedel, že už sa program nevráti späť do Basicu. Inak som ho pri návrate musel vrátiť.
    Staré zlaté časy. Ďakujem za článok.

  • 7. 2. 2023 10:05

    občasný počítačový údržbář

    Registr IY používá Sinclair BASIC k indexování svých proměnných. Když program ve strojáku nezakáže na začátku svého běhu přerušení instrukcí di, tak poběží režim IM1 pro obsluhu klávesnice a to je ten důvod, proč nelze IY používat s povoleným přerušením. Se zakázaným lze, jen je potřeba před povolením vrátit do registru IY adresu 23610.

    Záleží na programu, většina programů asi přerušení zakazuje, resp. používá IM2 (pro přehrávání hudby na AY např.), jen málo programů spoléhá na obsluhu klávesnice pomocí Sinclair ROM. Ale existují.

    Další registr, který je dobré při návratu do BASICu zachovat, je sekundární HL.

  • 7. 2. 2023 22:35

    vlado

    Samozrejme s registrom IY je to tak. Nie vždy ale využívali na systémové premenné IY, takže sa premenné nedali presunúť. Dôvod bol jednoduchý. Napríklad na načítanie 2-bytovej hodnoty do HL využívali:
    LD HL, (ADRESA) - zabralo 3 byty a trvalo 16 taktov
    LD L,(IX +0)
    LD H,(IX+1)
    - tento kód zabral 6 bytov a trval 2x19 taktov.
    Osobne som často využíval IM2, jeho súčasťou bola väčšinou obsluha klávesnice cez ROM. Samozrejme registre som mal vtedy v poriadku.
    Ak si dobre pamätám, tak v HL' bol uložený vrchol kalkulátora Spectra (RST#28).
    Všetko je to už moc dávno, môj poslený počin bol že som si v 90-tych rokoch pripojil vyradenú klávesnicu. Bola to nejaká Consul, mala klasický DIN(5-kolík) a obsahovala tuším 8048. Bola pripojená na jeden pin 8085, nejaký riadiaci signál mi spustil nemaskované prerušenie a obsluha bolo pár riadkov v assembleri.
    Samozrejme som mal "opravenú" ROM ktorá to umožňovala, nepoužíval som magnetofón (mal som D40(5 1/4') a bokom pripojenú ďalšiu 3,5' mechaniku a nehral som s ňou hry. Klávesnica bola na písanie kódu, prípadne textu a podobne.