1
Salut;
Pour un de mes progs, je cherche une manière automatique pour entrer un guillemet dans une chaîne.
-"""=>str1 ne marche pas.
-input "",str1 marche, mais pas pratique.
Je ne peux pas utiliser un guillemet de variable caché; parce que la chaîne de caractère contient du code (et pas un résultat affichable).

Est-ce que c'est possible en Assembleur? Est-ce que vous savez comment faire en Basic?
Merci surf
2
Essaye de faire :
Rcl Str1


Aulieu de :
Disp Str1


Et normalement ça s'affiche entre guillemets.
3
Non, mon but est d'entrer les guillemets dans la chaîne.
(ex: tu fais input"",str1 et tu tapes un guillemet.)
4
Mouais, tu peux le faire en Asm avec CharZ, mais si c'est pour un petit programme essai de les remplacer par une ou deux apostrophes (c'est tout aussi compréhensible).
5
C'est ce que j'explique plus tot; je ne veux pas mettre d'apostrophe parce que je génère du code basic dans une chaine; et que l'apostrophe n'a jamais pu remplacer les guillemets dans le code.
6
En Asm, tu pourrais me donner un code source stp? smile (mettre un guillemet dans Ans, et le lancer avec la commande Asm(prgm ))
Je m'arrangerai pr trouver comment on compile ça...
7
J'sais pas, ça doit être un truc du genre :
.nolist
#include "ion.inc"
#define bcall(xxxx) rst 28h \ .dw xxxx

.list
.org progstart-2
.db $BB,$6D

start:
call _zeroop1
ld hl,strngname
ld de,op1
ld bc,3
ldir
bcall(42F1h)
bcall nc,(_delvar)
ld hl,1
bcall(4327h)
inc de
inc de

ld hl,strng
ld bc,1
ldir
ret

strngname:

.db STRNGOBJ,TVARSTRNG,TSTR1 ; type de la chaine de caractère (=string)

strng:

.db tAPost ; adresse du caractère Ascii

.end END


Normalement (si tu arrive à le compiler, parce que les tabulations vont surement de gener), ça devrai te créer Str1 avec dedans une apostrophe, après tu n'as plus qu'a faire un truc du genre :
Str1+Str2+Str1→Str1


Ou sinon, essai Symbols v2.1, c'est plus simple et surtout ça va te servir plus souvent.
8
Ok merci.
Je vais essayer de compiler ça. Pour symbol, c'est interessant mais pour le cas des guillemets, ce n'est pas exploitable. sad
9
Bah si, suffit de chercher le numéro du caractère Ascii des apostrophes, puis de le stocker dans G et de lancer le programme.
Disons que ce serait nettement plus interessant si ce Symbols 2.1 contenait le caractère "guillemet".
Mais vu que ce n'est pas le cas, je ne peux pas lui demander de me le fournir (malheureusement, l'auteur l'a créé en basic, donc pas de guillemets dans les chaines...)
Bon, j'ai réussi à le compiler, mais je n'arrive pas à lancer ce prog.
En gros, ça me rentre dans le prog:

:0BB6DF14200000000274300000000
:End
:0000
:End

Même ac AsmPrgm devant, ça ne marche pas...
Je l'ai compilé ac zapp83. Tu me conseilles quoi comme compilateur?
Ah, juste une question; xxxx ça sert à quoi dans le prog?
#define bcall(xxxx) rst 28h \ .dw xxxx


Ça ? Ça veux simplement dire que 'bcall(xxxx)' doit êtes compris par '.dw xxxx' par le compilo (enfin je croit, après le 'rst 28h' j'en sais rien).

Sinon pour le lancer essai de faire :

Asm(prgmNOM_DU_PROG

Avec la commande 'Asm(' qui est dans le catalog et le 'prgmNOM_DU_PROG' que tu séléctionne comme si tu voulais le lancer.

Autre chose, Symbols n'est pas en Basic, c'est simplement l'interface qui l'est.
Hum; je sais comment on lance les prog asm et nn, je l'ai déprotégé et c'est entièrement du basic pour Symbol...
Normalement, pour assembler correctement ton prog, il manque pas des lignes de #include?
Normalement, pour assembler correctement ton prog, il manque pas des lignes de #include?


Nan, mais ça doit être un erreur de programmation (ou alors de compilation vu que chez moi ça veut pas se compiler).
je l'ai déprotégé et c'est entièrement du basic pour Symbol...


Y'a la source avec (en Asm), donc c'est pas du Basic.
Pour symbols, je pense que tu as une ancienne version.
Si tu regardes au bout du lien indiqué, tu verras qu'il est dans la catégorie "basic". Et si tu regardes le code, tu verras que j'ai raison sur ce coup... Je sais encore à quoi ressemble du code basic...
Mouais (y'a quand même une source en Asm...).

Aufaite, c'est pour quoi les guillemets dans ta chaine de caractère ?
J'avais fait un prog pas très rapide et pas très facilement utilisable et je voudrais l'améliorer.
Il s'agit de rentrer du texte ac une certaine mise en forme (la mise en forme se fait ac des caractères spéciaux) et le programme donne le code pour afficher le texte dur le graph.
Le guillemet, ça sert à pouvoir faire: "Text1,1," + Str1 + une partie du texte
Où t'as le guillemet dans Str1.
Tiens, je file le lien: Editext
Ce prog m'a bien aidé pr taper du texte de cours, dc je l'ai mis à disposition...

Sinn, pr la source que tu m'as passé, tu pourrais pas la revoir pr la faire marcher stp???
Essaye ça :
.nolist
#include "ti83plus.inc"

.list
.org progstart-2
.db $BB,$6D

progstart:
.org 9327h
call _zeroop1
ld hl,strngname
ld de,op1
ld bc,3
ldir
call _chkfindsym
call nc,_delvar
ld hl,1
call _createstrng
inc de
inc de

ld hl,strng
ld bc,1
ldir
ret

strngname:
.db STRNGOBJ,TVARSTRNG,TSTR1

strng:
.db tAPost

.end END


(faut rajouter les tabulations par contre).
Merci; pour les tabulations, c'est bon, j'ai un programme (TiasmCompiler) qui me les rajoutte.
Tu utilise quoi comme compileur? Je crois Zapp83 ne gère pas bien la 83+ et TiAsm compiler doit pas me les coder en z80...
(c'est pr ça que je me suis jamais mis à l'asm, c'est lourd pr le compiler...)
Par contre, il n'y a pas d'erreur détectée dans le code...
smile Avec un peu de patience j'ai corriger les dernière erreur... et ça marche !

Voilà la source si ça t'interesse :
.nolist
#include "ion.inc"

.list
#ifdef TI83P
.org progstart-2
.db $BB,$6D
#else
.org progstart
#endif

start:
bcall(_zeroop1)
ld hl,strngname
ld de,op1
ld bc,3
ldir

bcall(_chkfindsym)
call nc,_delvar
ld hl,1
bcall(4327h)
inc de
inc de

ld hl,strng
ld bc,1
ldir
ret

strngname:
.db 4,0AAh,09h

strng:
.db 02Ah
.end END


Et un petit lien pour le télécharger :

Str v1.0 (avec source).
Bon, je te remercie beaucoup! casque
J'ai moi même réussi à le compiler, après bcp d'essais.
Est-ce que y'a moyen de mettre le guillemet dans Ans? (sans passer par Str0)
Si oui, tu peux me passer une source? (maintenant que j'arrive à compiler...)
Ah, tu devrais aussi le mettre sur Ticalc et Espace Ti; parce que c'est utile comme routine.
Est-ce que y'a moyen de mettre le guillemet dans Ans? (sans passer par Str0)


J'vais voir ça.
Ah, tu devrais aussi le mettre sur Ticalc et Espace Ti; parce que c'est utile comme routine.


Quand même pas, d'autre programmes permettre de stocker bien plus de caractère différent dans plusieurs chaines de caractère.