Odpověď na názor

Odpovídáte na názor k článku Vývoj pro ZX Spectrum: vlastní vykreslovací subrutiny potřetí. Názory mohou přidávat pouze registrovaní uživatelé. Nově přidané názory se na webu objeví až po schválení redakcí.

  • Článek je starý, nové názory již nelze přidávat.
  • 21. 3. 2023 12:57

    _dw

    Imho je tohle spis ukazka jak lze obtizne psat na Z80.

    Ale ta grafika je podle me teda peklo taky. Zjednodusenim v jednom smeru, to ve vsech ostatnich udelali slozitejsi...

    Preferoval bych, kdyby to slo pekne za sebou:
    +256 o 8 pixelu dolu a nebo -256 o 8 pixelu nahoru.
    +32 o pixel dolu a nebo -32 (+FFE0) o pixel nahoru.
    Nemusi se resit zadne up/down rutiny, kdyz pisete uz sam o sobe nejaky komplikovany algoritmus na kruznici/usecku.

    Znaky se komplikuji na to, ze problem prechodu tretin se meni na problem prechodu radku.
    Na radku je to stale jen +-1 pro spodni bajt. Jakmile to preleze pres 5 bitu tak se meni +-horni bajt.
    Neco jako pro znak "vpravo/nasledujici znak/+1":
    L = X
    L |= 0xC0
    H = Y
    HL++
    L &= 0x1F

    A pro znak "vlevo/predchozi/-1":
    L = X
    H = Y
    HL--
    L &= 0x1F

    Timhle se da vlastne resit prechod pro tretiny i ted. U H |=3 a H &=F8.

    TAB x, ktere nastavi kurzor na x znak na radku (pouhe prirazeni) a nebo pokud je to posun doleva tak snizi radek (+256) by byl o dost snazsi.

    YX ve znacich na adresu v HL:
    H = Y
    L = X
    add HL, HL
    add HL, HL
    add HL, HL

    YX v pixelech na adresu v HL?
    H = Y
    L = X
    a ted potrebujeme HL >>= 3
    takze asi neco jako
    A = L
    xor H
    and 0xF8
    xor H
    rrca
    rrca
    rrca
    L = A
    A = H
    rrca
    rrca
    rrca
    H = A

    Hmm to je 12+2 bajtu (12*4+7 = 55 taktu)

    Takze na 12 bajtu (3*16 = 48 taktu) to jde udelat primo pres shift H a L.

    PS: Mit to linearne by pro me asi nejvic zmenilo ten pocit z pomaleho nacitani obrazovky her. Pokud by to neemulovala primo ta nacitaci rutina.