Petit Computer France
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
Le deal à ne pas rater :
Google Pixel 7 5G – Smartphone 6,3″ OLED FHD+ 8 Go + 128 Go
316 €
Voir le deal

[Tutoriel]SAVE utilisant PACKAGE$

5 participants

Page 1 sur 2 1, 2  Suivant

Aller en bas

[Tutoriel]SAVE utilisant PACKAGE$ Empty [Tutoriel]SAVE utilisant PACKAGE$

Message par J8B Jeu 30 Oct - 4:17

[Tutoriel]SAVE utilisant PACKAGE$

SOMMAIRE
0)Introduction
1)La commande SAVE et PACKAGE$
2)Une fois cela bien en tête, qu'est-ce que PACKAGE$ ?
3)Les bits des ressources
4)Comment activer une ressource et la paqueter ?
5)Quels sont les inconvénients ?
6)Conclusion

0)Introduction
Bienvenue dans le tutoriel qui va vous apprendre à utiliser la commande SAVE, mais dans sa version expert avec la variable système PACKAGE$.

1)La commande SAVE et PACKAGE$
On connaît tous ou presque tous, la commande SAVE qui sauvegarde n'importe quel type de ressource de Petit Computer.
Ex1: SAVE"COL1:COULEUR" pour la couleur des sprites
Ex2: SAVE"PROG" ou SAVE"PRG:PROG" pour un programme
Mais l'autre façon de sauvegarder c'est de paqueter ressources et programme, avec une variable système PACKAGE$.
On n'utilise pas vraiment cette variable mais on crée plutôt sa valeur, Petit Computer se chargeant de l'assigner automatiquement à PACKAGE$.
Ex: SAVE"PROG","5007" ou "5007" sera la valeur assigné à PACKAGE$ par la suite, jusqu'à qu'une nouvelle valeur soit crée.

2)Une fois cela bien en tête, qu'est-ce que PACKAGE$ ?
PACKAGE$ est la valeur hexadécimale d'une valeur binaire de base 16.
Ex: "5007" ou 5 correspond en binaire à 0101 (voir AIDE_J8B, trucs et astuces N°6 ou N°7 )
Chaque bit représente une ressource de Petit Computer en fonction de l'écran du haut ou du bas. (voir le 3) du tutoriel, ou voir AIDE_J8B trucs et astuces N°8 )
Les bits s'écrivent du plus grand au plus petit et se suivent toujours.
Ex: b03 b02 b01 b00 ce qui correspond aux ressources SPU3 SPU2 SPU1 SPU0 de l'écran du haut.
Ex2: si on avait besoin du bits 42, on devrait écrire la liste à partir du bit 43 jusqu'au bit 0.

3)Les bits des ressources

Correspondance bit / ressource:

4)Comment activer une ressource et la paqueter ?
Pour activer une ressource dans un PACKAGE$, il suffit que son bit soit égal à 1 sinon ce sera 0.
Ex: Pour sauvegarder un programme paqueté avec SPU1 et SPU2, il suffira de regarder les bits qu'ils occupent : SPU1 c'est le b01 et SPU2 c'est le b02.
Donc comme on est dans une base de 16, il faut prendre en compte aussi le b00 et le b03 ce qui nous donne : b03=0 b02=1 b01=1 b00=0.
On convertit ensuite en hexadécimal le résultat 0110 ce qui nous donne : 6 (Dans PetitComputer on fera en mode RUN: ?HEX$(0110) ). On écrira alors SAVE"PROG","6"

5)Quels sont les inconvénients ?
Le premier est qu'on peut paqueter qu'une ressource de chaque type, ce qui veut dire qu'on ne peut pas paqueter deux SPU0 par exemple.
Le deuxième est qu'on ne peut pas recharger une ressource paqueté, ce qui veut dire que si on charge un SPU0 alors qu'un SPU0 paqueté est présent, on ne pourra pas retrouver le SPU0 paqueté, il est définitivement perdu pour la suite du programme.
Dernier point, si on modifie un programme paqueté, il faut toujours penser à l'enregistrer avec son PACKAGE$.
Ex: LOAD"J8BPGAME" '(J8BPGAME est paqueté)
   'on modifie le code
   SAVE"J8BPGAME","5007" 'On sauvegarde le programme avec les ressources. Oublier le PACKAGE$ reviendrait à sauvegarder que le programme sans ressources.
Garder bien en tête que si vous avez supprimé les fichiers ressources, et que vous oubliez de sauvegarder avec le PACKAGE$ et quitter, vous perdrez toutes les ressources qui était avec le PACKAGE$.

6)Conclusion
En résumé, pour paqueter il faut d'abord activer les ressources suivant les bits qu'ils occupent, et convertir le résutat en hexadécimal pour obtenir le PACKAGE$, et enfin utiliser une commande SAVE suivi du nom du programme et du PACKAGE$. C'est donc très utile pour avoir plusieurs fichiers en un seul programme et on n'aura pas à se demander quoi supprimer pour la désinstallation ou si on a rien oublier de scanner.
En contrepartie, Paqueter sert seuleument pour les programmes qui n'utilisent qu'un type de chaque ressource, ce qui limite son utilisation aux programmes ayant des ressources graphiques limités.

PS:Pour toutes erreurs, veuillez me le signaler que je les corrige.


Dernière édition par J8B le Dim 2 Nov - 0:15, édité 3 fois
J8B
J8B

Messages : 408
Date d'inscription : 27/10/2013
Localisation : Tarn

http://jinbryce.free.fr

Revenir en haut Aller en bas

[Tutoriel]SAVE utilisant PACKAGE$ Empty Re: [Tutoriel]SAVE utilisant PACKAGE$

Message par Adriendu92 Jeu 30 Oct - 9:21

Super Tuto mais en fait je n'ais pas compris ce que tu entend par "paqueter" confused
C'est sauvegarder un programme avec ses ressources en même temps confused
c'est ce que j'ai compris en tout cas !
J' espère que tu m'éclairera ou que tu rajouteras Arrow une partie explication dans ton tuto ! drunken
Adriendu92
Adriendu92

Messages : 165
Date d'inscription : 07/12/2013
Age : 23
Localisation : Colombes

http://www.ptc-qr-code.sitew.fr/

Revenir en haut Aller en bas

[Tutoriel]SAVE utilisant PACKAGE$ Empty Re: [Tutoriel]SAVE utilisant PACKAGE$

Message par Kuroshitsu Jeu 30 Oct - 17:05

Je crois avoir compris dans l'ensemble, merci pour ce tuto Smile

Tu pourrais peut-être rajouter dans ton post comment passer du binaire à l'hexadécimal, ce que ton logiciel d'aide ne permet pas directement (c'est expliqué, mais ce n'est pas calculé comme pour hexadécimal -> binaire) :
HEX$(&B0110)=6

Je vais commencer par créer un logiciel qui convertit un "b**" en ce qu'il faut, puis je vais essayer avec b22 (MEM) pour mon OS, ce sera un premier défi ^^
Kuroshitsu
Kuroshitsu

Messages : 104
Date d'inscription : 18/10/2014
Age : 25

Revenir en haut Aller en bas

[Tutoriel]SAVE utilisant PACKAGE$ Empty Re: [Tutoriel]SAVE utilisant PACKAGE$

Message par J8B Jeu 30 Oct - 17:20

Ouais je pense que tu as bien compris. Paqueter signifie former des paquets. Donc quand tu sauvegardes en paquets ça signifie que le programme et ses ressources forme un seul fichier.
C'est ce que j'ai écrit en conclusion mais d'une manière différente.
D'ailleurs faut que je pense à corriger mon fichier AIDE, ce que j'ai marqué pour SAVE n'est pas très exact.

Kuroshitsu, mon fichier d'aide explique le binaire en hexadécimal il y a même un exemple qui est ?HEX$(&B1001101) -> 4D
Bon j'ai rajouté l'exemple dans le tuto Wink
Hexadécimal en binaire, n'est pas expliqué par contre mais à un convertisseur.
J8B
J8B

Messages : 408
Date d'inscription : 27/10/2013
Localisation : Tarn

http://jinbryce.free.fr

Revenir en haut Aller en bas

[Tutoriel]SAVE utilisant PACKAGE$ Empty Re: [Tutoriel]SAVE utilisant PACKAGE$

Message par Kuroshitsu Jeu 30 Oct - 17:39

J8B > Je viens de finir ma propre version du convertisseur, c'était pas de la tarte en effet x)
Oui j'avais bien précisé que tu l'avais expliqué dans l'aide, mais c'est toujours mieux de le rajouter dans ton tuto ^^
Kuroshitsu
Kuroshitsu

Messages : 104
Date d'inscription : 18/10/2014
Age : 25

Revenir en haut Aller en bas

[Tutoriel]SAVE utilisant PACKAGE$ Empty Re: [Tutoriel]SAVE utilisant PACKAGE$

Message par J8B Jeu 30 Oct - 19:36

Et alors ton convertisseur c'est à peu près pareil que le mien ou mieux ?
Bien que l'essentiel soit le résultat ^^
J8B
J8B

Messages : 408
Date d'inscription : 27/10/2013
Localisation : Tarn

http://jinbryce.free.fr

Revenir en haut Aller en bas

[Tutoriel]SAVE utilisant PACKAGE$ Empty Re: [Tutoriel]SAVE utilisant PACKAGE$

Message par Kuroshitsu Jeu 30 Oct - 20:14

Bah mon convertisseur décimal->binaire semble fonctionner correctement (j'ai comparé avec des résultats sur Internet), mais j'ai dû mal comprendre le passage hexadécimal-->décimal...
Kuroshitsu
Kuroshitsu

Messages : 104
Date d'inscription : 18/10/2014
Age : 25

Revenir en haut Aller en bas

[Tutoriel]SAVE utilisant PACKAGE$ Empty Re: [Tutoriel]SAVE utilisant PACKAGE$

Message par J8B Jeu 30 Oct - 20:30

Kuroshitsu a écrit:Bah mon convertisseur décimal->binaire semble fonctionner correctement (j'ai comparé avec des résultats sur Internet), mais j'ai dû mal comprendre le passage hexadécimal-->décimal...
Hexadécimal en décimal c'est tout bête c'est PRINT &H4D ce qui donne 77. Donc pas besoin de se torturer l'esprit ^^
J8B
J8B

Messages : 408
Date d'inscription : 27/10/2013
Localisation : Tarn

http://jinbryce.free.fr

Revenir en haut Aller en bas

[Tutoriel]SAVE utilisant PACKAGE$ Empty Re: [Tutoriel]SAVE utilisant PACKAGE$

Message par Kuroshitsu Jeu 30 Oct - 21:08

Dans mon programme, je demande avec un INPUT la valeur hexadécimale, que je stocke dans HEXA$
Pour faire la conversion Hexadécimal-->binaire, je comptais faire la conversion Hexa-->Décimal puis Décimal-->binaire.
Mais quand je fais DECIMAL=&HHEXA$, j'ai un message d'erreur qui s'affiche, la syntaxe n'est pas bonne :/
Kuroshitsu
Kuroshitsu

Messages : 104
Date d'inscription : 18/10/2014
Age : 25

Revenir en haut Aller en bas

[Tutoriel]SAVE utilisant PACKAGE$ Empty Re: [Tutoriel]SAVE utilisant PACKAGE$

Message par J8B Ven 31 Oct - 2:02

Kuroshitsu a écrit:Dans mon programme, je demande avec un INPUT la valeur hexadécimale, que je stocke dans HEXA$
Pour faire la conversion Hexadécimal-->binaire, je comptais faire la conversion Hexa-->Décimal puis Décimal-->binaire.
Mais quand je fais DECIMAL=&HHEXA$, j'ai un message d'erreur qui s'affiche, la syntaxe n'est pas bonne :/
C'est parce &H doit être suivi d'un code hexadécimal et pas d'une variable donc fait plutôt HEXA$="&H"+HEXA$ puis DECIMAL=VAL(HEXA$)
J8B
J8B

Messages : 408
Date d'inscription : 27/10/2013
Localisation : Tarn

http://jinbryce.free.fr

Revenir en haut Aller en bas

[Tutoriel]SAVE utilisant PACKAGE$ Empty Re: [Tutoriel]SAVE utilisant PACKAGE$

Message par Raven94 Ven 31 Oct - 7:42

très bon tuto (enfin je crois, j'ai pas testé) :p
Raven94
Raven94

Messages : 19
Date d'inscription : 02/07/2014
Age : 23

Revenir en haut Aller en bas

[Tutoriel]SAVE utilisant PACKAGE$ Empty Re: [Tutoriel]SAVE utilisant PACKAGE$

Message par Raven94 Ven 31 Oct - 8:23

très bon tuto ! Smile
Juste une question, je ne suis pas sur d'avoir compris, on peut supprimer toutes les ressources liées au programme (grp,chr,...) après le package ?
Raven94
Raven94

Messages : 19
Date d'inscription : 02/07/2014
Age : 23

Revenir en haut Aller en bas

[Tutoriel]SAVE utilisant PACKAGE$ Empty Re: [Tutoriel]SAVE utilisant PACKAGE$

Message par Kuroshitsu Ven 31 Oct - 9:15

Mon convertisseur marche cheers
Par contre, comment obtiens-tu b03=0, b02=1... ?
Quand je fait passer un b.. de l'héxadécimal au binaire, j'obtient toujours 0.
Kuroshitsu
Kuroshitsu

Messages : 104
Date d'inscription : 18/10/2014
Age : 25

Revenir en haut Aller en bas

[Tutoriel]SAVE utilisant PACKAGE$ Empty Re: [Tutoriel]SAVE utilisant PACKAGE$

Message par J8B Ven 31 Oct - 18:19

Raven94
Pas vraiment supprimer mais les changer. Si tu relances ton programme depuis le début elles reviendront.
Par exemple tu charges ton programme paqueté, ses ressources se chargent donc automatiquement, et si dans ton programme tu utilises la commande CHRINIT sur une de tes ressources paqueté, elle changera par celle de PetitComputer. Le seul moyen pour que ta ressource paqueté revienne, est de relancer le programme.

Kuroshitsu
C'est toi qui choisi les bits si c'est 0 ou 1. Et les bits c'est du binaire. Bref comprends pas trop ce que tu veux faire ? scratch
J8B
J8B

Messages : 408
Date d'inscription : 27/10/2013
Localisation : Tarn

http://jinbryce.free.fr

Revenir en haut Aller en bas

[Tutoriel]SAVE utilisant PACKAGE$ Empty Re: [Tutoriel]SAVE utilisant PACKAGE$

Message par fenixelf Ven 31 Oct - 19:09

Donc on peut faire la sauvegarde d'un MEM$ SANS sauvegarder le MEM$ ?
Trop drole !
Mais va falloir que je relise 10 fois pour comprendre bien de quoi il retourne (moi et les sauvegardes ca prend du temps.)
Attends y'a un truc pas dit : tu nous dis que les bits 0,1,2 et 3 si tu save les 1 et 2 le résultat binaire c'est 0110, t'es gentil mais si c'est les 20,21,22,23 et qu'on veut save les 22 et 23, en binaire ca fait sans doute pas 0011. Tu donnes un exemple spécial pas général et ça embête dans la compréhension je trouve.
fenixelf
fenixelf

Messages : 229
Date d'inscription : 08/03/2014
Age : 24
Localisation : Île de France - La ville du bois

http://www.fenixelf-drawing.fr

Revenir en haut Aller en bas

[Tutoriel]SAVE utilisant PACKAGE$ Empty Re: [Tutoriel]SAVE utilisant PACKAGE$

Message par J8B Ven 31 Oct - 19:19

Je ne suis pas trop sûr de ce qu'il se passe pour le MEM$, j'ai jamais essayé.
En théorie, je pense que pour sauvegarder dans le jeu, il faudra faire un SAVE "PRG",PACKAGE$ au lieu d'un SAVE"MEM:TonFichier"
J8B
J8B

Messages : 408
Date d'inscription : 27/10/2013
Localisation : Tarn

http://jinbryce.free.fr

Revenir en haut Aller en bas

[Tutoriel]SAVE utilisant PACKAGE$ Empty Re: [Tutoriel]SAVE utilisant PACKAGE$

Message par Raven94 Sam 1 Nov - 7:26

Je n'ai toujours rien compris, parce que si l'on ne peut pas supprimer les ressources ensuite autant mettre un "LOAD:..." ça ne prend pas beaucoup plus de place et c'est plus simple, non ?
Raven94
Raven94

Messages : 19
Date d'inscription : 02/07/2014
Age : 23

Revenir en haut Aller en bas

[Tutoriel]SAVE utilisant PACKAGE$ Empty Re: [Tutoriel]SAVE utilisant PACKAGE$

Message par Kuroshitsu Sam 1 Nov - 15:07

Hum visiblement j'ai pas tout compris en ce qui concerne les bits, mais j'aurais au moins réalisé un convertisseur hexadécimal-->binaire ^^'
À ce sujet, j'ai trouvé un logiciel dédié très bien fait qui pourra aider chaque lecteur de ce tuto à se lancer dans les PACKAGE$ : c'est par ici

Au fait, je crois remarqué que lorsque l'on modifie un programme sur lequel on avait déjà attaché, par exemple, une police, il faudra repréciser le PACKAGE$ au moment d'utiliser SAVE. Si je n'ai pas mal compris les deux arguments de ta partie "Inconvénients", tu pourrais le rajouter Smile
Kuroshitsu
Kuroshitsu

Messages : 104
Date d'inscription : 18/10/2014
Age : 25

Revenir en haut Aller en bas

[Tutoriel]SAVE utilisant PACKAGE$ Empty Re: [Tutoriel]SAVE utilisant PACKAGE$

Message par J8B Sam 1 Nov - 20:08

Kuroshitsu
Oui bien sûr si tu modifies un programme paqueté, il faut le SAVE avec PACKAGE$ sinon tu sauvagardes que le programme sans les ressources. Je vais le rajouter pour ceux qui sont pas très intuitifs.

Raven94
En fait c'est moi qui avait mal compris ce que tu voulais dire. Désolé de la confusion. Embarassed
Donc oui une fois que tu as fait un SAVE avec PACKAGE$, tu peux supprimer les fichiers ressources qui ont été enregistré en PACKAGE$ étant donné que maintenant elle sont dans le programme paqueté. Par contre n'oublie pas de faire comme dit juste au dessus à Kuroshitsu si tu dois modifier ton programme paqueté.


J8B
J8B

Messages : 408
Date d'inscription : 27/10/2013
Localisation : Tarn

http://jinbryce.free.fr

Revenir en haut Aller en bas

[Tutoriel]SAVE utilisant PACKAGE$ Empty Re: [Tutoriel]SAVE utilisant PACKAGE$

Message par Raven94 Sam 1 Nov - 21:12

Ok Merci, assez sympa cette commande alors ^^
Raven94
Raven94

Messages : 19
Date d'inscription : 02/07/2014
Age : 23

Revenir en haut Aller en bas

[Tutoriel]SAVE utilisant PACKAGE$ Empty Re: [Tutoriel]SAVE utilisant PACKAGE$

Message par fenixelf Sam 1 Nov - 22:13

Ce que je veux dire (excuse moi si je rale trop lol! ) mais dans ton exemple, tu parles des 4 PREMIERS bits. Comment parler des 4 suivants par exemple? En affichant les 8 ?
Si Les SPU 0 , 1 , 2 et 3 sont à 1, Les 4 5 6 et 7 à 0, le binaire c'est 11110000 ?
fenixelf
fenixelf

Messages : 229
Date d'inscription : 08/03/2014
Age : 24
Localisation : Île de France - La ville du bois

http://www.fenixelf-drawing.fr

Revenir en haut Aller en bas

[Tutoriel]SAVE utilisant PACKAGE$ Empty Re: [Tutoriel]SAVE utilisant PACKAGE$

Message par J8B Dim 2 Nov - 0:24

Attention Fenixelf :
J8B a écrit:Les bits s'écrivent du plus grand au plus petit et se suivent toujours.
Donc dans ton exemple le binaire est à l'envers.
Voici comment ça fonctionne :
SPU7-SPU6-SPU5-SPU4-SPU3-SPU2-SPU1-SPU0
--0----0-----0-----0-----1-----1-----1-----1
Comme les zéros sont inutiles au début d'un code binaire, le code est 1111.
J8B
J8B

Messages : 408
Date d'inscription : 27/10/2013
Localisation : Tarn

http://jinbryce.free.fr

Revenir en haut Aller en bas

[Tutoriel]SAVE utilisant PACKAGE$ Empty Re: [Tutoriel]SAVE utilisant PACKAGE$

Message par fenixelf Dim 2 Nov - 14:25

Ok, et l'ordi va comprendre tout seul... Wow, les informaticiens se bornent à te rabâcher qu'un ordinateur c'est la chose la plus débile existante mais là... X)
Mais si on veut utiliser les 47 bits faut tous les initialiser? Dur.
fenixelf
fenixelf

Messages : 229
Date d'inscription : 08/03/2014
Age : 24
Localisation : Île de France - La ville du bois

http://www.fenixelf-drawing.fr

Revenir en haut Aller en bas

[Tutoriel]SAVE utilisant PACKAGE$ Empty Re: [Tutoriel]SAVE utilisant PACKAGE$

Message par fenixelf Ven 26 Déc - 12:26

Je dois  pas avoir, compris...
On doit à chaque fois transformer les 4bits correspondants à une couleur en hexadécimal puis les mettre à la suite pour former le PACKAGE$ c'est ça?

Alors, imaginons que je veuille sauvegarder le SPU0 et le SCR0, le code binaire est :
 -  00010000000000000001 ou bien 10000000000000001, c'est pareil.
Je ne peux pas tout transformer en hexadécimal d'un seul coup (sinon overflow), donc je le fait 4 par 4 c'est bien ça?
Ensuite, si ça donne bien 10001, j'initialise une variable (mettons PACK$) et je fais SAVE"PROG,PACK$.  Où y a t' il une erreur ?
fenixelf
fenixelf

Messages : 229
Date d'inscription : 08/03/2014
Age : 24
Localisation : Île de France - La ville du bois

http://www.fenixelf-drawing.fr

Revenir en haut Aller en bas

[Tutoriel]SAVE utilisant PACKAGE$ Empty Re: [Tutoriel]SAVE utilisant PACKAGE$

Message par J8B Ven 26 Déc - 17:31

Oui c'est 4 par 4.
0001 0000 0000 0000 0001 donne bien 10001 en hexadécimal.
Puis tu fais SAVE"PROGRAMME","10001", ensuite n'oublie pas de sauvegarder ton programme toujours de cette manière.
Sache aussi que le SCR0 sera chargé au lancement du programme.
J8B
J8B

Messages : 408
Date d'inscription : 27/10/2013
Localisation : Tarn

http://jinbryce.free.fr

Revenir en haut Aller en bas

[Tutoriel]SAVE utilisant PACKAGE$ Empty Re: [Tutoriel]SAVE utilisant PACKAGE$

Message par Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Page 1 sur 2 1, 2  Suivant

Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum