Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ;Test d'interface utilisateur
- ;Siapran, le 25/04/2012
- set a, 0x8000 ;initialisation curseur
- :loop ;boucle principale
- set b, [0x9000] ;détection touche
- ife a, 0x8200 ;si le curseur sort de l'écran
- jsr scroll ;monter l'écran d'une ligne
- set [a], 0xf0df ;dessin du curseur clignotant
- ife b, 0xa ;si touche = entrée
- jsr jump_line ;appeller jump_line
- ife b, 8 ;si touche = backspace
- set pc, backspace ;alors goto :backspace
- ife b, 0 ;si b=0 (pas de touche)
- set pc, loop ;alors on reccommence
- bor b, 0xf000 ;ajout de la couleur (bor évite l'overflow)
- set [a], b ;écriture du caractère
- set [0x9000], 0 ;réinitialiser le buffer clavier
- add a, 1 ;incrémenter position curseur
- set pc, loop ;recommencer
- ;la fonction :backspace s'éxecute de façon très sale ¬¬
- ;il y a surement un moyen de faire mieux avec la pile mais bon flemme
- :backspace ;fonction :backspace
- ife a, 0x8000 ;si a=0 (si on est au début)
- set pc, nobackspace ;alors pas de backspace (goto :nobackspace)
- set [a], 0 ;effacement du curseur
- sub a, 1 ;décrémenter position curseur
- set push, b
- set b, a
- mod b, 32
- ife b, 0
- set pc, back2line
- set b, pop
- :nobackspace
- set [0x9000], 0 ;réinitialiser le buffer clavier
- set pc, loop ;recommencer
- :back2line
- set push, c
- set c, 1
- set b, a
- :back2line_loop
- set [b], 0
- sub b, 1
- add c, 1
- ifn [b], 0
- set c, 32
- ifn c, 32
- set pc, back2line_loop
- set c, pop
- set pc, pop
- :scroll ;scroll(a)
- set a, 0x8000 ;a=début
- :scroll_loop ;boucle
- set [a], [0x20+a] ;remplacement/décalage
- add a, 1 ;incrémentation
- ifn a, 0x8200 ;si a/=fin
- set pc, scroll_loop ;recommencer
- set a, 0x81e0 ;mettre le curseur à la ligne
- set pc, pop ;retour(a)
- :jump_line ;jump_line(a)
- set [a], 0 ;effacer curseur
- div a, 32 ;chopper nb ligne
- add a, 1 ;ligne suivante
- mul a, 32 ;mettre cuseur à ligne
- set [0x9000], 0 ;réinitialiser le buffer clavier
- set b, 0
- set pc, pop ;retour(a, b
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement