@sss: in al,60h and al,80h je @ende // jos portti ei toimi niin näppäimen painallus lopettaa in al,dx shr al,5 jnc @sss // lue uudestaan, jos tila on 0
Miten ASM:lla tsekataan onko esim. välilyöntiä painettu (yllä oleva koodi tsekkaa kaikkia näppäimiä) ? Miten tuo pitäisi muuttaa ?
Kuten moni (QB) näppisesimerkki koodivinkeissä selvittää, palauttaa portti 60h näppäimen tilan niin, että jos arvo > 128, on näppäin 'arvo - 128' nostettu, muuten näppäin 'arvo' on painettu. Eli siis tuota vois muuttaa niin että muuttaa tuon "and al,80h" jotakuinkin muotoon "cmp al, (57+128)" (spacebarin scan-koodi on 57). Heitin tuon nyt vähän mutu pohjalta että ilmoittele ihmeessä jos ei toimi :)
Kitos. Tässä kans koodi joka pelaa :
@sss:
in al,60h
cmp al,39h
je @ende // space pressed.
Juu, toi tosiaan ilmeisesti havaitsee sen näppäimen painalluksen, jos pistät B9h (57+128), havaitsee se näppäimen vapautuksen.
Aihe on jo aika vanha, joten et voi enää vastata siihen.