MSX Village forum

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

Jipe Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 19h41

Messages: 10792

Le 03/07/2012 à 12h30

Reprise du message précédent

c'est le lot avec du X-Basic d'être limité en mémoire et de ne pas pouvoir utiliser la pleine mémoire
en plus il faut prévoir des "sorties" pour repasser en mode TURBO OFF

la seule "panne" que j'ai vu sur un Turbo-R c'est la barre d'espace cassée suite a un oubli d'utilisation du ren sha turbo
en fait dans ce cas sous basic quand on fait du listing l'espace répond un coup sur 3
et hop un coup de poing sur cette "sAlEtE" de barre d'espace



:noel
Site web    
GDX Membre non connecté

Conseiller Municipal

Rang

Avatar

Inscrit le : 17/01/2011 à 08h52

Messages: 3004

Le 03/07/2012 à 15h05
Alors ça doit venir de la routine de redéfinition de caractères qui empiète sur une zone du X-basic ou autres. Faudrait connaître les zones mémoire qu'il utilise. Il n'a pas une doc. quelque part ?
   
Jipe Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 19h41

Messages: 10792

Le 03/07/2012 à 15h09
il faudrait un échantillon du programme pour voir ce qui cloche :s


:noel
Site web    
ericb59 Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++ Groupe : Shoutbox

Inscrit le : 17/04/2012 à 10h25

Messages: 5578

Le 03/07/2012 à 15h43
avec un échantillon tu n'iras pas loin... :siffle
là ça fonctionne depuis que j'ai fait du ménage...

je n'ai pas encore essayé la routine de redéfinition des caractères de jipe, donc c'est pas ça le problème.
J'utilise nestorbasic, et d'après la doc en ligne, il ne prend que 500 octets sur le basic (si j'ai bonne mémoire)

je veux proposer un jeu bien propre... alors je fignole... ^^ Edité par ericb59 Le 03/07/2012 à 15h45


banniere-ericb59e
Site web    
igal Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++

Inscrit le : 29/07/2010 à 17h19

Messages: 5492

Le 03/07/2012 à 16h57
Moa qd j'fais un truc, j'aime bien faire galérer les autres avec moi :fou

Par contre, le résulta final perd de sa superbe lorsque tu partages ta progression avec les autres.

En tout cas, je suis impatient de tester ;)


Tiens... voila du boudin, voila du boudin, voila du boudin... :siffle
ericb59 Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++ Groupe : Shoutbox

Inscrit le : 17/04/2012 à 10h25

Messages: 5578

Le 03/07/2012 à 17h40
igal :




En tout cas, je suis impatient de tester ;)


môa aussi ! :lol


banniere-ericb59e
Site web    
ericb59 Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++ Groupe : Shoutbox

Inscrit le : 17/04/2012 à 10h25

Messages: 5578

Le 03/07/2012 à 20h31

pourquoi je ne peux pas faire ça ?

10 D=500
20 restore D




banniere-ericb59e
Site web    
Visiteur

Vagabond

Rang

Avatar

Message : 0

Le 03/07/2012 à 20h41
RESTORE ne s'utilise qu'avec des numéros de ligne.

Mais je crois me souvenir que RESTORE est associé aux instructions READ et DATA .

Là encore c'est "si mes souvenirs sont bons" :oups
   
Visiteur

Vagabond

Rang

Avatar

Message : 0

Le 03/07/2012 à 20h46
En effet !

Pour redonner à D sa valeur initiale sans utiliser READ ... DATA .... RESTORE, il faut passer par une valeur intermédiaire qui ne changera pas

Soit donc

10 D=500: D1=D
20 D=D1 Edité par Visiteur Le 03/07/2012 à 20h48
   
ericb59 Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++ Groupe : Shoutbox

Inscrit le : 17/04/2012 à 10h25

Messages: 5578

Le 03/07/2012 à 21h28
j ai mes niveaux dans des series de ligne de data...
disons que le niveau 1 commence a la ligne 100 , le niveau 2 a la ligne 200 etc...

je voulais faire ceci :

1000 restore level*100
1001 read.... etc

mais non, je ne peux pas du coup
il faut que je mette une serie de if then pour indiquer là où commence la lecture des data...
c est con ! :gre Edité par ericb59 Le 03/07/2012 à 21h29


banniere-ericb59e
Site web    
Visiteur

Vagabond

Rang

Avatar

Message : 0

Le 03/07/2012 à 21h33
Il faut mettre RESTORE 100 si la ligne 100 correspond à la première ligne de DATA du niveau 1

puis RESTORE 200 si la ligne 200 correspond à la première ligne de DATA du niveau 2

Quant à READ, tu peux le mettre dans une sous-routine que tu appelles par GOSUB. Edité par Visiteur Le 03/07/2012 à 21h37
   
ericb59 Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++ Groupe : Shoutbox

Inscrit le : 17/04/2012 à 10h25

Messages: 5578

Le 03/07/2012 à 21h36
oui ca je sais mais je voulais une methode automatique, pour lire les niveaux en focntioncdu niveau...


banniere-ericb59e
Site web    
ericb59 Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++ Groupe : Shoutbox

Inscrit le : 17/04/2012 à 10h25

Messages: 5578

Le 04/07/2012 à 11h07
@Jipe Ta routine de modif de caratère fonctionne, mais une fois Nestor basic chargé certains caractères sont brouillés, c'est le cas de toutes les majuscules et de espace...
Certainement que nestorbasic viens par dessus ta redéfinition...


banniere-ericb59e
Site web    
Metalion Membre non connecté

Conseiller Municipal

Rang

Avatar

Inscrit le : 23/12/2009 à 15h32

Messages: 1503

Le 04/07/2012 à 11h17
Tu peux utiliser la méthode "ON ... GOTO/GOSUB".

Code :
100 ON D GOSUB 1100,1200,1300,1400
110 READ ... 'lecture des données du niveau

...

1100 RESTORE 2000:RETURN
1200 RESTORE 2100:RETURN
1300 RESTORE 2200:RETURN
1400 RESTORE 2300:RETURN
Edité par Metalion Le 04/07/2012 à 11h18


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)
   
GDX Membre non connecté

Conseiller Municipal

Rang

Avatar

Inscrit le : 17/01/2011 à 08h52

Messages: 3004

Le 04/07/2012 à 11h23
Si je me souviens bien, pas besoin de routine pour redéfinir les caractères. Ils suffit de changer l'emplacement. Ce sont les 3 octets à 0F91FH qui indiquent l'emplacement.

0F91FH = Slot
0F920H = Adresse

Il suffit de mettre le Slot dans lequel où se trouve la RAM à 0F91FH au format FxxxSSPP (par défaut c'est la ROM) et d'indiquer l'adresse de la police 8x8 que tu as mise en RAM.

La police de caractères complète prend 2Ko (8x256) mais en calculant bien l'emplacement des caractères utiles, tu peux économiser pas mal de place.

Sinon, le plus simple est la méthode des COPY. Edité par GDX Le 04/07/2012 à 11h43
   
Jipe Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 19h41

Messages: 10792

Le 04/07/2012 à 12h02
la redéfinition des caractéres ne prends pas le jeu de caractéres complet et ne fait que 1k pour ne pas empiéter trop dans la mémoire
l'affichage s'arrête au z minuscule

sinon la méthode employée est celle de remplacement des 3 octets F91FH F920H F921H , il n'y a pas de routine juste un calcul pour le slot

on peut changer l'emplacement en déplaçant les octets d'en tête du fichier

actuellement FE 00 D7 E0 DA 00 D5

pour une implantation en D5 00 ça devient : FE 00 D5 E0 D8 00 D5 et le pointeur du basic passe de D7 a D5



:noel
Site web    
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie