Vlákno názorů k článku Aritmetické operace s hodnotami uloženými binárně i ve formátu BCD od _dw - Chtel jsem ukazat co se vygeneruje kdyz se...

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

    _dw

    Chtel jsem ukazat co se vygeneruje kdyz se zapisne na vstup pro M4 Forth 'HEX UDOT', ale kdyz se ten trik ma odhalit priste tak nebudu predbihat.

    2x volani new_line je spravne. Protoze ROM rutiny jsou kompikovane, a pro pozici na radku si ROM uklada hodnotu, ktera znaci kolik mista jeste ma pred koncem. Pry tak snaz pozna zda musi zalomit slovo. Pokud se zapise posledni znak, tak kurzor automaticky nepreskoci na dalsi radek, ale zustane na puvodnim s tim ze je tam nula. Myslim, ze ten duvod je, aby se neaktivoval skroll kdyz jen chceme zapsat cely radek (dostaneme se na konec), ale AZ POTE, co chceme ulozit dalsi znak.

    Misto 2x new_line slo udelat i kurzor_vpravo (0x0D) a new_line (0x0D).

    Kurzor vpravo a vlevo neni zabugovany v originalni romce tak funguje. Na rozdil od nahoru a dolu myslim. Kde se omylem ukoncuje rutina pres RET, ale pritom je to tokenizovany, takze se ma volat rutina pro konec. Nevim to jiste.

    Jen jsem to nedavno resil, kdyz jsem psal ted fonty 5x8 pro ten M4 Forth, s tim ze jsem si musel presmerovat volani rst 0x10, coz je bolest, protoze to musite psat jako stream, takze vam chodi znak za znakem a vy musite menit stav a reagovat na vstup v zavislosti jaky je nastaveny stav. Zadny:

    IF znak = INK THEN nacti si dalsi znak a zmeni ink.

    Musite delat neco jako

    IF stav = none AND znak = INK THEN zmen stav na read_ink
    ELSE IF stav = read_ink THEN zmen ink a vynuluj stav.

  • 14. 4. 2023 10:52

    Pavel Tišnovský
    Zlatý podporovatel

    Dik za to info, hlavne o "double newline". Jsem si nejak myslel, ze to souvisi s vnitrni logikou, ale stejne je to divny :)