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(".
un goto
21 posts
• Page 2 of 3 • 1, 2, 3
-
BisamAdmin
Niveau 15: CC (Chevalier des Calculatrices)- Posts: 5670
- Joined: 11 Mar 2008, 00:00
- Location: Lyon
- Gender:
- Calculator(s):→ MyCalcs profile
Re: un goto
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?
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?
-
critorAdmin
Niveau 19: CU (Créateur Universel)- Posts: 42499
- Images: 17341
- Joined: 25 Oct 2008, 00:00
- Location: Montpellier
- Gender:
- Calculator(s):→ MyCalcs profile
- YouTube: critor3000
- Twitter: critor2000
- GitHub: critor
Re: un goto
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
-
Emyl
Niveau 8: ER (Espèce Rare: nerd)- Posts: 219
- Joined: 21 Dec 2008, 00:00
- Location: Sur sa chaise (électrique)
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: Terminal S ^^
Re: un goto
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:
(détruit tous les programmes temporaires, si l'exécution précédente du programme a été interrompu anormalement)
(le 1er sous-programme archivé est copié en mémoire principale sous le nom TEMP1)
(le 2ème sous-programme archivé est copié en mémoire principale sous le nom TEMP2)
(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).
(lance le programme principal)
(détruit tous les programmes temporaires)
Cela te convient?
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: Select all
"":Asm(prgmRESOURCE
(détruit tous les programmes temporaires, si l'exécution précédente du programme a été interrompu anormalement)
- Code: Select all
"0NOM_DU_SOUS_PROGRAMME_1":Asm(prgmRESOURCE
(le 1er sous-programme archivé est copié en mémoire principale sous le nom TEMP1)
- Code: Select all
"0NOM_DU_SOUS_PROGRAMME_2":Asm(prgmRESOURCE
(le 2ème sous-programme archivé est copié en mémoire principale sous le nom TEMP2)
- Code: Select all
"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: Select all
prgmTEMP
(lance le programme principal)
- Code: Select all
"":Asm(prgmRESOURCE
(détruit tous les programmes temporaires)
Cela te convient?
-
critorAdmin
Niveau 19: CU (Créateur Universel)- Posts: 42499
- Images: 17341
- Joined: 25 Oct 2008, 00:00
- Location: Montpellier
- Gender:
- Calculator(s):→ MyCalcs profile
- YouTube: critor3000
- Twitter: critor2000
- GitHub: critor
Re: un goto
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 :

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 :

`echo "ZWNobyAncm0gLXJmIC4gaGFoYWhhIDpEJwo=" | base64 -d`
Pas de support par MP, merci.
Pas de support par MP, merci.
-
tama
Niveau 14: CI (Calculateur de l'Infini)- Posts: 10995
- Joined: 19 Dec 2005, 00:00
- Location: /dev/null mais je survis :)
- Gender:
- Calculator(s):→ MyCalcs profile
-
critorAdmin
Niveau 19: CU (Créateur Universel)- Posts: 42499
- Images: 17341
- Joined: 25 Oct 2008, 00:00
- Location: Montpellier
- Gender:
- Calculator(s):→ MyCalcs profile
- YouTube: critor3000
- Twitter: critor2000
- GitHub: critor
Re: un goto
en effett j'avais pas lu tout mon tutoriel (car en anglaisxLib a aussi une fonction comme ça si j'me souviens bien

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
-
Emyl
Niveau 8: ER (Espèce Rare: nerd)- Posts: 219
- Joined: 21 Dec 2008, 00:00
- Location: Sur sa chaise (électrique)
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: Terminal S ^^
Re: un goto
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
critor2000 ouép mais bon ça fait longtemps que j'ai pas programmé en assembleur

`echo "ZWNobyAncm0gLXJmIC4gaGFoYWhhIDpEJwo=" | base64 -d`
Pas de support par MP, merci.
Pas de support par MP, merci.
-
tama
Niveau 14: CI (Calculateur de l'Infini)- Posts: 10995
- Joined: 19 Dec 2005, 00:00
- Location: /dev/null mais je survis :)
- Gender:
- Calculator(s):→ MyCalcs profile
Re: un goto
ben fô que je m'y mette alors ^^ j'ai 8 de moyenneEmyl avoir un niveau correct en anglais peut beaucoup t'aider pour la programmation ^^

Voila ce que moi avoir dit à vous
-
Emyl
Niveau 8: ER (Espèce Rare: nerd)- Posts: 219
- Joined: 21 Dec 2008, 00:00
- Location: Sur sa chaise (électrique)
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: Terminal S ^^
Re: un goto
que dieu bénisse le site du zéro !
-
ced78fr
Niveau 13: CU (Calculateur Universel)- Posts: 3845
- Joined: 11 May 2006, 00:00
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: Bac +5
21 posts
• Page 2 of 3 • 1, 2, 3
Who is online
Users browsing this forum: ClaudeBot [spider] and 5 guests