π
<-

un goto

Re: un goto

Messagede Bisam » 10 Fév 2009, 12:33

En fait, si tu veux rendre ton programme lisible, le mieux est de faire ce que tu as proposé : utiliser un sous-programme avec un paramètre (qui sera une variable globale sur une z80... car à part en assembleur, il n'y a pas d'autres moyens de transférer une valeur d'un programme à un autre)... mais le problème sera reporté plus loin : c'est dans ce sous-programme que tu devras faire les tests !

Tu ne gagneras pas beaucoup de place (voire tu en perdras un tout petit peu) mais ce sera beaucoup plus simple pour toi de modifier ton programme par la suite !


Par ailleurs, pour revenir à mon "string(", je n'avais pas fait attention que la commande n'existait pas (toutes les autres existent : "expr(", "instring(" et "sub(" notamment) mais on peut peut-être ruser en utilisant la commande "Equstring(".
Avatar de l’utilisateur
BisamAdmin
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Prochain niv.: 69.6%
 
Messages: 5670
Inscription: 11 Mar 2008, 00:00
Localisation: Lyon
Genre: Homme
Calculatrice(s):
MyCalcs profile

Re: un goto

Messagede critor » 10 Fév 2009, 12:39

Il n'est pas possible d'archiver/désarchiver à partir d'un programme Basic (la commande est interdite par le système d'exploitation.

Mais, j'ai déjà pensé moi-même à ce problème de place, car ayant déjà développé des programmes qui occupent un bon pourcentage de la mémoire vive (10Ko, 5Ko...).

L'ensemble des programmes 83+/84+ que j'ai mis sur TI-Bank utilisent un petit système que j'ai développé à partir d'un utilitaire assembleur disponibles sur Internet.

Cet utilitaire permet de copier un programme archivé en mémoire principale.
Pourquoi copier et non désarchiver?
L'archive/désarchivage peut lancer une défragmentation de la mémoire, qui est prioritaire sur l'exécution du programme, et peut prendre du temps... C'est assez embêtant.
La simple copie contourne de problème.


- Tous les programmes sont en mémoire d'archive sauf 2 (un programme "lanceur", et le programme assembleur pour lire la mémoire d'archive)

- Le programme "lanceur" copie temporairement les programmes archivés nécessaires en mémoire principale, et lance le programme principal.

- A la fin de l'exécution du programme principal, le programme "lanceur" nettoie la mémoire en effaçant les programmes temporaires.


Est-ce que ce système te conviendrait?
Image
Avatar de l’utilisateur
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Prochain niv.: 54.5%
 
Messages: 42501
Images: 17353
Inscription: 25 Oct 2008, 00:00
Localisation: Montpellier
Genre: Homme
Calculatrice(s):
MyCalcs profile
YouTube: critor3000
Twitter/X: critor2000
GitHub: critor

Re: un goto

Messagede Emyl » 10 Fév 2009, 21:25

oui ça serait pas mal. t'aurais pas le nom du l'utilisataire pour simplifier la recherche SVP ^^
Voila ce que moi avoir dit à vous
Avatar de l’utilisateur
Emyl
Niveau 8: ER (Espèce Rare: nerd)
Niveau 8: ER (Espèce Rare: nerd)
Prochain niv.: 88.3%
 
Messages: 219
Inscription: 21 Déc 2008, 00:00
Localisation: Sur sa chaise (électrique)
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: Terminal S ^^

Re: un goto

Messagede critor » 10 Fév 2009, 22:41

L'utilitaire assembleur s'appelle
RESOURCE.

La documentation est en anglais.


Une fois que tu es habitué, c'est très pratique. Un maximum de 9 programmes temporaires sont gérés, sous les noms TEMP1 à TEMP9.

En gros voilà la structure de ton programme lanceur:

Code: Tout sélectionner
"":Asm(prgmRESOURCE

(détruit tous les programmes temporaires, si l'exécution précédente du programme a été interrompu anormalement)

Code: Tout sélectionner
"0NOM_DU_SOUS_PROGRAMME_1":Asm(prgmRESOURCE

(le 1er sous-programme archivé est copié en mémoire principale sous le nom TEMP1)

Code: Tout sélectionner
"0NOM_DU_SOUS_PROGRAMME_2":Asm(prgmRESOURCE

(le 2ème sous-programme archivé est copié en mémoire principale sous le nom TEMP2)

Code: Tout sélectionner
"0NOM_DU_PROGRAMME_PRINCIPAL":Asm(prgmRESOURCE

(le programme principal est copié en mémoire principale sous le nom TEMP3)

Dans tous les cas, un programme TEMP est crée, et pointe sur le dernier programme copié en mémoire (il faut donc mettre le programme principal en dernier).

Code: Tout sélectionner
prgmTEMP

(lance le programme principal)

Code: Tout sélectionner
"":Asm(prgmRESOURCE

(détruit tous les programmes temporaires)


Cela te convient?
Image
Avatar de l’utilisateur
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Prochain niv.: 54.5%
 
Messages: 42501
Images: 17353
Inscription: 25 Oct 2008, 00:00
Localisation: Montpellier
Genre: Homme
Calculatrice(s):
MyCalcs profile
YouTube: critor3000
Twitter/X: critor2000
GitHub: critor

Re: un goto

Messagede tama » 10 Fév 2009, 23:20

eh pas mal comme idée ça, c'est comme sur 68k ^^
xLib a aussi une fonction comme ça si j'me souviens bien et y a un programme sur le net qui faisait ça
mais bon, c'est une bonne idée
moi j'avais fait un programme (tout seul comme un grand =p) qui créait un programme OUT il me semble à partir d'une chaine de caractères
cf :
Image
`echo "ZWNobyAncm0gLXJmIC4gaGFoYWhhIDpEJwo=" | base64 -d`

Pas de support par MP, merci.
Avatar de l’utilisateur
tama
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 40.9%
 
Messages: 10995
Inscription: 19 Déc 2005, 00:00
Localisation: /dev/null mais je survis :)
Genre: Homme
Calculatrice(s):
MyCalcs profile

Re: un goto

Messagede critor » 11 Fév 2009, 00:06

Et oui, en assembleur tu me domines :;):
Image
Avatar de l’utilisateur
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Prochain niv.: 54.5%
 
Messages: 42501
Images: 17353
Inscription: 25 Oct 2008, 00:00
Localisation: Montpellier
Genre: Homme
Calculatrice(s):
MyCalcs profile
YouTube: critor3000
Twitter/X: critor2000
GitHub: critor

Re: un goto

Messagede Emyl » 11 Fév 2009, 11:39

xLib a aussi une fonction comme ça si j'me souviens bien
en effett j'avais pas lu tout mon tutoriel (car en anglais :#gol#: ), mais j'ai donc cherché et trouvé.
Je pense utiliser la fonction de Xlib car vu que le jeu tournera grace à lui, il vaut mieux ne prendre qu'un utilisataire ^^

Cependant merci Critor, je garde le tient en réserve, car si j'ai l'intention de faire des progs par la suite, c'est sans l'aide de Xlib, il me sera donc bien utile :;):
Voila ce que moi avoir dit à vous
Avatar de l’utilisateur
Emyl
Niveau 8: ER (Espèce Rare: nerd)
Niveau 8: ER (Espèce Rare: nerd)
Prochain niv.: 88.3%
 
Messages: 219
Inscription: 21 Déc 2008, 00:00
Localisation: Sur sa chaise (électrique)
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: Terminal S ^^

Re: un goto

Messagede tama » 11 Fév 2009, 17:53

Emyl> avoir un niveau correct en anglais peut beaucoup t'aider pour la programmation ^^

critor2000 ouép mais bon ça fait longtemps que j'ai pas programmé en assembleur :p
`echo "ZWNobyAncm0gLXJmIC4gaGFoYWhhIDpEJwo=" | base64 -d`

Pas de support par MP, merci.
Avatar de l’utilisateur
tama
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 40.9%
 
Messages: 10995
Inscription: 19 Déc 2005, 00:00
Localisation: /dev/null mais je survis :)
Genre: Homme
Calculatrice(s):
MyCalcs profile

Re: un goto

Messagede Emyl » 11 Fév 2009, 18:49

Emyl avoir un niveau correct en anglais peut beaucoup t'aider pour la programmation ^^
ben fô que je m'y mette alors ^^ j'ai 8 de moyenne :#roll#:
Voila ce que moi avoir dit à vous
Avatar de l’utilisateur
Emyl
Niveau 8: ER (Espèce Rare: nerd)
Niveau 8: ER (Espèce Rare: nerd)
Prochain niv.: 88.3%
 
Messages: 219
Inscription: 21 Déc 2008, 00:00
Localisation: Sur sa chaise (électrique)
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: Terminal S ^^

Re: un goto

Messagede ced78fr » 11 Fév 2009, 20:09

que dieu bénisse le site du zéro !
Avatar de l’utilisateur
ced78fr
Niveau 13: CU (Calculateur Universel)
Niveau 13: CU (Calculateur Universel)
Prochain niv.: 1.1%
 
Messages: 3845
Inscription: 11 Mai 2006, 00:00
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile
Classe: Bac +5

PrécédenteSuivante

Retourner vers TI-Basic

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 20 invités

-
Rechercher
-
Social TI-Planet
-
Sujets à la une
Ndless for CX 4.5.5 / CX II 6.2.0
Comparaisons des meilleurs prix pour acheter sa calculatrice !
"1 calculatrice pour tous", le programme solidaire de Texas Instruments. Reçois gratuitement et sans aucune obligation d'achat, 5 calculatrices couleur programmables en Python à donner aux élèves les plus nécessiteux de ton lycée. Tu peux recevoir au choix 5 TI-82 Advanced Edition Python ou bien 5 TI-83 Premium CE Edition Python.
Enseignant(e), reçois gratuitement 1 exemplaire de test de la TI-82 Advanced Edition Python. À demander d'ici le 31 décembre 2024.
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
12345
-
Faire un don / Premium
Pour plus de concours, de lots, de tests, nous aider à payer le serveur et les domaines...
Faire un don
Découvrez les avantages d'un compte donateur !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partenaires et pub
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
7654 utilisateurs:
>7632 invités
>15 membres
>7 robots
Record simultané (sur 6 mois):
43991 utilisateurs (le 10/09/2025)
-
Autres sites intéressants
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)