1

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...)
La curiosité est la mèche dans la chandelle du savoir...

2

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.

3

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 !
La curiosité est la mèche dans la chandelle du savoir...

4

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!!!
un jour peut-être...

5

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.

6

J'ai rien compris!!!Tu poeux réexpliquer?
un jour peut-être...

7

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).

8

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

un jour peut-être...

9

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.

10

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???
un jour peut-être...

11

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.

12

C'est vraiment trop pratique!!!!!!
un jour peut-être...

13

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

14

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)