MSX Village forum

La Place des Développeurs quelqu'un pour me rafraîchir la mémoire ...

GDX Membre non connecté

Conseiller Municipal

Rang

Avatar

Inscrit le : 17/01/2011 à 08h52

Messages: 3004

Le 26/06/2012 à 08h57

Reprise du message précédent

Si mais pas comme ça. Il faut utiliser ON var GOSUB numéro de ligne[,numéro de ligne[,...]]

Si la variable = 0 alors pas de saut.
Si = 1 saut au premier numéro de ligne
etc...
   
ericb59 Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++ Groupe : Shoutbox

Inscrit le : 17/04/2012 à 10h25

Messages: 5566

Le 26/06/2012 à 09h24
oui merci...
:top


banniere-ericb59e
Site web    
Jipe Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 19h41

Messages: 10731

Le 26/06/2012 à 12h32
l'autre solution :
10 A=100
20 IF A=100 gosub 100
100 PRINT "BONJOUR"
110 RETURN


:noel
Site web    
ericb59 Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++ Groupe : Shoutbox

Inscrit le : 17/04/2012 à 10h25

Messages: 5566

Le 26/06/2012 à 14h54
@jipe j'essaie de minimiser autant que possible l'usage des "If ... then" pour économiser du temps processeur ! :gne

Alors, j'ai bien avancé... encore ! Quand j'ai un truc en tête, ça m'obsède :sick donc faut que j'vance ! haha !

J'aurai besoin de 2 choses :
- une musique FM avec un replayer en ASM (pour la musique n'importe c'est pour tester)
- quelqu'un qui puisse me faire ou me dire comment faire des effets sonores avec le PSG...
Je n'ai pas besoin de grand chose comme effets sonores... "Un bruit de pas" un perso qui marche... tcho tchoc...
Et un bruit pour signifier que le perso tombe dans le vide...

Vous voyez ce que je veux dire ?


banniere-ericb59e
Site web    
Jipe Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 19h41

Messages: 10731

Le 26/06/2012 à 16h13
la tu arrives dans la partie sensible la musique et le bruitage des jeux

avec le PSG et l'instruction sound on peux faire des bruitages
tente aussi ta chance avec le PCM et des digits

pour les replayers a part celui de la moonsound ils ne courent pas les rues


:noel
Site web    
ericb59 Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++ Groupe : Shoutbox

Inscrit le : 17/04/2012 à 10h25

Messages: 5566

Le 26/06/2012 à 20h54
j'ai lu quelque part qu'il existe des fichiers music/son .obj
Que l'on peut appeler facilement...
c'est quoi ? comment ça marche ?


banniere-ericb59e
Site web    
Metalion Membre non connecté

Conseiller Municipal

Rang

Avatar

Inscrit le : 23/12/2009 à 15h32

Messages: 1503

Le 27/06/2012 à 09h27
ericb59 :
@jipe j'essaie de minimiser autant que possible l'usage des "If ... then" pour économiser du temps processeur ! :gne


Une bonne solution pour économiser les IF ... THEN est d'utiliser des opérandes directes.

Par exemple dans la ligne BASIC suivante :



Code :
10 X=-(C=1)*10


X sera égal à 0 si C est différent de 1 (FAUX donne 0 comme valeur à la comparaison)

X sera égal à 10 si C est égal à 1 (VRAI donne -1 comme valeur à la comparaison)



Et on peut bien sur faire plusieurs tests en même temps en multipliant les opérandes :



Code :
10 X=(C=1)*(D>15)*(E<>10)*200


Il faut juste faire attention aux signes de l'évaluation.


MSX1: Daewoo DPC-200 / Yamaha CX5M
MSX2: Sony HB-F9P
MSXVR
Vidéo: V9990 (GFX-9)
Audio: MSX-Music (FM-PAC) / MSX-Audio (Audiowave) / OPL4 (Monster Sound FM Blaster) / OPNB (Neotron)
   
Visiteur

Vagabond

Rang

Avatar

Message : 0

Le 27/06/2012 à 10h21
Citation :


Code :
10 X=-(C=1)*10






L'opérateur d'assignation et de comparaison qui reste identique, c'est vraiment pas terrible.



Après tokenization, si ça se trouve, l'interprétation est la même, voire même plus compliquée pour le basic, car je soupçonne l'utilisation d'une pile pour sauver le contexte de la première assignation.



Il faut se méfier des formes raccourcies, qui ne sont pas forcément plus rapides.



Par exemple, en C, il y a des gens qui font leurs copies comme ça:



Code :


while (*src) {
 *dst = *src;
 ++dst;
 ++src;
}







Et il y a ceux qui font comme ça:



Code :


while (*dst++=*src++);





À priori, le résultat est le même. La seconde forme parle aux bas instincts du codeur et lui dit «regarde, je suis la plus rapide». Sauf que:



- la seconde forme est un UB (undefined behaviour). Dans ce cas, ça fonctionnera la plupart du temps (mais sans garantie).



- le code généré, dans le meilleur des cas, sera strictement identique.



- la première forme est bien plus lisible.



Donc là, je conseillerais d'en rester à une écriture lisible avec des «if/then». C'est plus important que de gagner epsilon avec des pratiques vaudoues.


   
Metalion Membre non connecté

Conseiller Municipal

Rang

Avatar

Inscrit le : 23/12/2009 à 15h32

Messages: 1503

Le 27/06/2012 à 10h33
Venom :
L'opérateur d'assignation et de comparaison qui reste identique, c'est vraiment pas terrible. Après tokenization, si ça se trouve, l'interprétation est la même, voire même plus compliquée pour le basic, car je soupçonne l'utilisation d'une pile pour sauver le contexte de la première assignation.


Hmmmm ... Tu as peut être raison, mais je n'en suis pas certain.



Car à mon avis, l'évaluation de l'expression "C=1" est faite de la même façon par le BASIC dans les deux cas. Dans le cas IF ... THEN, après l'évaluation de "C=1", l'argument VRAI ou FAUX est transmis à l'évaluation de l'expression "IF ... THEN" pour décision. Dans l'autre cas, la valeur VRAI ou FAUX est transmise dans le calcul pour évaluation de l'expression calculée.



On a donc probablement l'occasion de sauter une étape et d'être directement dans l'évaluation de l'expression calculée.



Maintenant, tu as peut être raison en terme d'utilisation de la pile.

C'est à voir ...


MSX1: Daewoo DPC-200 / Yamaha CX5M
MSX2: Sony HB-F9P
MSXVR
Vidéo: V9990 (GFX-9)
Audio: MSX-Music (FM-PAC) / MSX-Audio (Audiowave) / OPL4 (Monster Sound FM Blaster) / OPNB (Neotron)
   
ericb59 Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++ Groupe : Shoutbox

Inscrit le : 17/04/2012 à 10h25

Messages: 5566

Le 27/06/2012 à 18h26
quelle est la variable qui peut m'afficher ce qui me reste de mémoire pour le basic ?


banniere-ericb59e
Site web    
Visiteur

Vagabond

Rang

Avatar

Message : 0

Le 27/06/2012 à 18h30
Tu tapes ceci en Basic :

?fre(0)
   
Visiteur

Vagabond

Rang

Avatar

Message : 0

Le 27/06/2012 à 18h31
PRINT FRE(0) si mes souvenirs sont bons :oups

[edit] : grillé :gre mais mes souvenirs étaient bons :D Edité par Visiteur Le 27/06/2012 à 18h36
   
Jipe Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 19h41

Messages: 10731

Le 27/06/2012 à 18h39
pour obtenir un peu d'espace mémoire supplémentaire il y a le truc du CTRL a l'Init qui désactive un lecteur de disquette

mais il faudra le préciser dans la notice du jeu ;)


:noel
Site web    
ericb59 Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++ Groupe : Shoutbox

Inscrit le : 17/04/2012 à 10h25

Messages: 5566

Le 27/06/2012 à 18h52
ok ! maintenant que tu le dis... je m en souviens ! :lol

j ai cru lire quelque part qu on pouvait libérer un peut de mémoire, avec autre chose que le ctrl au démarrage... ? non ?


banniere-ericb59e
Site web    
Jipe Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 19h41

Messages: 10731

Le 27/06/2012 à 18h55
tu peux essayer Shift mais alors tu perd tous les disques


:noel
Site web    
ericb59 Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++ Groupe : Shoutbox

Inscrit le : 17/04/2012 à 10h25

Messages: 5566

Le 28/06/2012 à 13h21
... Comment écrire sur du screen 12

Avec la méthode classique open grp... etc...
Ca fait des gros paquets !!

Et question subsidiaire, comment écrire , sur un screen 10, par exemple; sans le cadre noir autour des lettres ?


banniere-ericb59e
Site web    
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie