Survol
Dans ce tutorial, nous
allons apprendre comment effacer l'écran, à la manière Asm, bien sûr.
Programmation
Le code du programme
suivant va vider l'écran de votre calculatrice. Comme c'est votre premier
programme, je vais vous guider pas à pas. Ouvrez le dossier
"MesProgs" et créez un nouveau fichier texte. Appellez-le
"Clrscreen.z80". Remarquez que l'extension de fichier est .z80.
Ouvrez-le et copiez le programme suivant dedans. Au lieu de faire un simple
copier/coller (NDT: Je me suis permis de faire une mise en page rendant
difficile le copier/coller de la source du programme), je vous recommande de
l'imprimer et de le copier à la main pour vous familiariser avec le format du
programme, et donc vous apprendrez plus vite à programmer).
#define B_CALL(xxxx) | rst 28h \ .dw xxxx | ;Ceci définit les deux macros, bcall et bjump | |||
#define B_JUMP(xxxx) | call 50h \ .dw xxxx | ;Ne vous préoccupez pas trop de bjump parce que vous ne l'utiliserez pas très souvent |
_clrlcdfull =4540h
;Les calls que nous allons utiliser sont
définis ici
_homeup =4558h
.org 9D95h ;Ceci indique à la calculatrice que le programme devra commencer à l'adresse mémoire 9D95h
B_CALL(_homeup) ;Appelle le home screen
B_CALL(_clrlcdfull) ;Efface l'écran
ret ;Retourne au TI-OS
.end
;Fin
du programme
END
Commandes Utilisées
_clrlcdf - Cette commande
va effacer entièrement l'écran. Lorsque vous utilisez ce call seul dans un
programme, il effacera l'écran entier. Mais n'oubliez pas d'inclure un call ret
à la fin ou sinon la calculatrice ne retournera pas sous l'AMS, la forçant à
crasher et se réinitialiser (resetter). Il en va de même avec tous les ROM
calls.
_homeup - Celle-ci amène le home screen.
ret - Une instruction Asm z80 standard qui vous ramène au TI-OS
.end and END - Des instructions z80 qui indiquent à la calculatrice la fin du
programme.
Assembler le
Programme
Pour assembler un
programme, allez au tutorial 5
Autres commandes de purge (NDT:
Clear
Commands dans le texte original)
D'autres commandes telles
que _ClrLcd (_ClrLcd = 4543h) effacent entièrement l'écran, tandis que _Clrlcdf
effacera l'écran en ignorant tout mode de division d'écran (split screen). _ClrScrn (_ClrScrn = 4549h)
effacera l'écran et toute trace de texte avec (NDT: and any
text shading along with it dans le texte original). _ClrScrnFull (_ClrScrnFull = 4546h)
videra l'écran et toute trace de texte en ignorant toute division d'écran. _ClrTxtShd ( _ClrTxtShd =
454Ch) videra le buffer de texte (NDT: the text shade buffer dans le
texte original). Pour utilisez n'importe lequel de ces calls dans le programme
ci-dessus, définissez le call et rappelez-le dans le programme en utilisant la
macro B_CALL().
Par exemple, pour utiliser le call _ClrScrnFull ROM, le
programme devrait ressembler à ça:
#define bcall(xxxx)
rst 28h \ .dw xxxx
#define bjump(xxxx) call 50h \ .dw xxxx
_clrscrnfull =4546h
;N'oubliez pas de le définir
_homeup =4558h
.org 9D95h
bcall(_homeup)
bcall(_clrscrnfull) ;Au lieu de _clrlcdf, vous utilisez _clrscrnfull
ret
.end
END
Si vous avez des questions, envoyez-moi un e-mail. Je ferais de mon mieux.
Cliquez pour revenir au menu du site... ou ici pour retourner au menu du tutorial.