Posté le 11/09/2006 à 16:09 Membre depuis le 01/06/2006, 16 messages
Bon bah, je crois que le titre résume tout...
Comment on fait pour afficher des variables en grands ou petits caractères, dans le graph buffer ou pas ?
Et est ce qu'il y a des systèmes d'adresse pour les chaînes ?
Par exemple, donner l'adresse d'un élément de la chaîne et sa longueur au lieu de définir tous les textes 1 par 1.
En fait, est ce qu'on peut écrire :
texte:
"bonjouraurevoir"

et n'afficher que "bonjour" ?
Je serais très content d'une éventuelle réponse ! (Et serAI également... enfin, bon...)
Posté le 12/09/2006 à 12:16 Membre depuis le 19/12/2002, 480 messages
Comment on fait pour afficher des variables en grands ou petits caractères, dans le graph buffer ou pas ?


Pour cela, il faut utiliser les Flags. Regarde dans asmin28days.
bonjouraurevoir"
et n'afficher que "bonjour" ?


Oui, il me semble, il doit y avoir une Rom Call qui le fait, sinon, y'a toujours moyen de copier la chaine en mémoire et de copier un zéro après le "bonjour" puis d'afficher par la voie classique.
Posté le 12/09/2006 à 16:21 Membre depuis le 01/06/2006, 16 messages
Ui, ça ma l'air pas mal mais... on fait comment ?
Eh ! J'suis qu'un pauvre petit débutant !

Pour les flags, j'y arrive mais le sens de ma question c'est plutôt comment afficher des nombres qui sont des variables ?
J'avais essayé de stocker une valeur de matrice dans hl et d'utiliser "_disphl" avec "textwrite" à 1 (j'utilise aussi un sprite) mais ça ne m'affiche rien...
J'aimerais savoir si c'est moi qui fait mal ou si la manip' n'est pas possible et si oui, quelle romcall employer.

Et tant que j'y suis (j'avais déjà posé la question mais bon...), n'existe-t-il pas un fichier qui regroupe et surtout qui EXPLIQUE l'utilisation des romcalls ? (entrée, sortie, effet...)

Eh ben voila, c'est tout pour l'instant, merci bien joe14 !
Posté le 30/04/2007 à 10:08 Membre depuis le 12/02/2007, 75 messages
Je suis dans la même merde que toit, mon vieux, et j'ai posé à peu près la même question (cf comment connaitre les propriétés des ROM CALL?).Va voir le sujet que j'ai posté, dont je t'ai indiqué le nom entre parenthèses, y'a des gens qui m'ont copié des liens, mais perso je suis décu!!!
Posté le 30/04/2007 à 10:25 Membre depuis le 15/03/2005, 3470 messages
Essayez de voir sur TIwiki pour les RomCalls(même si j'arrive plus à y aller depuis quelques jours...). Sinon pour ton flag qui te permetterai de n'écrire que dans le graph buffer, c'est :
set textwrite, (iy+sgrflags)


Pour l'activer, et :
res textwrite, (iy+sgrflags)


Pour le désactiver. Ensuite, si tu veux simplifier l'affichage du texte en ASM j'ai écrit un petit truc bien sympa :
#define Text(YPOS,XPOS,STRING) ld a,XPOS \ ld (PENCOL),a \ ld a,YPOS \ ld (PENROW),a \ ld hl,STRING \ bcall(_vputs) #define Output(YPOS,XPOS,STRING) ld a,XPOS \ ld (CURCOL),a \ ld a,YPOS \ ld (CURROW),a \ ld hl,STRING \ bcall(_puts)


(Il faut placer ça dans ce qui n'est pas du code : '.nolist') Exemple :
Output(0,0,Text1) ; ne surtout pas oublier de refermer la paranthèse comme en Basic !
Text(24,0,Text1+12) ; '+12' pour pouvoir avoir accés à la seconde phrase (le nombre de caractère de la première phrase plus le zéro et plus un.
bcall(_getKey) ; attend l'appui d'une touche
ret ; fin

Text1:
.db "Output O_o",0 .db "Text",0


Voilà, je sais pas si ça peut être utile mais moi ça m'aide bien.
Posté le 03/05/2007 à 09:21 Membre depuis le 12/02/2007, 75 messages
J'ai rien compris!!!Tu poeux réexpliquer?
Posté le 03/05/2007 à 23:33 Membre depuis le 15/03/2005, 3470 messages
Qu'est-ce que tu n'as pas compris ?

Le mieu c'est encore de tester les éxemples que je t'ai donnée.

Mais bon, si t'essayes ça en héxa ça va pas le faire, tu devrais essayer les trucs comme Oncalc compiler, c'est pas vraiment finit mais ça marche très bien. Y'en a d'autre mais je trouve que celui là c'est le plus simpe (il utilise l'éditeur du TI-Basic).
Posté le 04/05/2007 à 09:28 Membre depuis le 12/02/2007, 75 messages
J'ai pas compris ca triso :
#define Text(YPOS,XPOS,STRING) ld a,XPOS \ ld (PENCOL),a \ ld a,YPOS \ ld (PENROW),a \ ld hl,STRING \ bcall(_vputs)
#define Output(YPOS,XPOS,STRING) ld a,XPOS \ ld (CURCOL),a \ ld a,YPOS \ ld (CURROW),a \ ld hl,STRING \ bcall(_puts)

Ca non plus lolpaf :

Output(0,0,Text1) ; ne surtout pas oublier de refermer la paranthèse comme en Basic !
Text(24,0,Text1+12) ; '+12' pour pouvoir avoir accés à la seconde phrase (le nombre de caractère de la première phrase plus le zéro et plus un.
bcall(_getKey) ; attend l'appui d'une touche
ret ; fin

Text1:
.db "Output O_o",0
.db "Text",0

Posté le 04/05/2007 à 17:01 Membre depuis le 15/03/2005, 3470 messages
Bon alors :
#define Text(YPOS,XPOS,STRING) ld a,XPOS \ ld (PENCOL),a \ ld a,YPOS \ ld (PENROW),a \ ld hl,STRING \ bcall(_vputs) #define Output(YPOS,XPOS,STRING) ld a,XPOS \ ld (CURCOL),a \ ld a,YPOS \ ld (CURROW),a \ ld hl,STRING \ bcall(_puts)


C'est pour définir la fonction 'Text([...])' et 'Output([...])' en ASM, enfaite lorsqu'on utilise cette commande on définit plusieurs variables : 'YPOS' qui est la position Y du texte, 'XPOS' qui est la position X du texte et 'STRING' qui est l'adresse de la chaine de caractère à afficher. Le reste c'est juste ce que doit faire le programme s'il trouve cette commande et avec ces variables.

Puis le reste je peux pas éxpliquer plus clairement :
Output(0,0,Textes) ; Affiche du texte en grand caractère (comme en Basic) au coordonnée (0;0) de l'écran.
Text(24,0,Textes+12) ; Affiche du texte en petit caractère (idem) au coordonnée (0;24) de l'écran. '+12' c'est pour pouvoir accéder à la seconde phrase (le nombre de caractère de la première phrase plus le zéro et plus un).
bcall(_getKey) ; attend l'appui d'une touche
ret ; fin

Textes: ; label des textes
.db "Output O_o",0 ; adresse du texte égale au label 'Textes' (donc rien à changer) .db "Text",0 ; adresste du texte : 'Textes'+24, cf plus haut


Franchement c'est hyper simple, essaye de comprendre et puis sinon relis/test le programme.
Posté le 07/05/2007 à 12:07 Membre depuis le 12/02/2007, 75 messages
Mais, oui!!!Je suis trop triso !!je sais pas pourquoi je t'ai dit ca, je devais être un peu fatigué ce jour là... zzz En tout cas, c'est drôlement pratique!!!Dis moi, tu peux faire ca pour n'importe quelle fonction en basic???
Posté le 07/05/2007 à 13:35Edité par deeph le 19/05/2007 à 11:53 Membre depuis le 15/03/2005, 3470 messages
Dis moi, tu peux faire ca pour n'importe quelle fonction en basic???


Peut être pas toutes, mais certaines oui, et des fois même de façons plus rapide.
Posté le 10/05/2007 à 12:35 Membre depuis le 12/02/2007, 75 messages
C'est vraiment trop pratique!!!!!!
Posté le 05/06/2007 à 13:59 Membre depuis le 05/06/2007, 2 messages
salut
c'etait pourtant bien explique dans le tuto "asmin28days" ^^

Par contre je comprend pas comment on fait pour afficher la valeur contenue par une variable.
Par exemple la valeur de l'Accu : A

Merci d'avance
Posté le 05/06/2007 à 16:26 Membre depuis le 15/03/2005, 3470 messages
D'après gh (), ce code affiche l'accumulateur à l'écran en prennant en compte les valeurs de 'pencol' et 'penrow' :

;========================================== 
;  VDispA - Displays A in the small font 
;========================================== 
vDispA: 
	ld h,0 
	ld l,a 
;=========================================== 
;  VDispHL - Displays hl in the small font 
;=========================================== 
vDispHL: 
	push de 
	push hl 
	ld de,op1+5 
	xor a 
	ld (de),a 
vdhlRepeat: 
	bcall(_divhlby10) 
	add a,'0' 
	dec de 
	ld (de),a 
	ld a,h 
	or l 
	jr nz,vdhlRepeat 
	ex de,hl 
	bcall(_vputs) 
	pop hl 
	pop de 
	ret 


(ça va t'afficher la valeur de l'accumulateur en petits caractères, à mon avis il suffit de change '_vputs' par '_puts' pour que ça te le fasse ne grands caractères)