Inscription : 04 Jan 2019, 02:05 Message(s) : 52 Localisation : Savoie - FRANCE
Bonjour à tous,
J'ai besoin de charger une image "CARTE.SCR" qui sera une carte dans mon jeu pour se déplacer, mais je ne sais pas la mettre en mémoire autrement qu'avec la commande :
LOAD"CARTE.SCR"
Elle s'affiche, mais ensuite dans le jeu je souhaite passer de l'écran Carte à d'autres écrans et revenir à la Carte dès que l'on veut se déplacer.
Pour cela il faut mettre cette image de 16 Ko à un autre endroit de la mémoire, pas à &c000 si j'ai bien compris, ça c'est la mémoire écran affiché.
J'ai vu qu'il existait des commandes du style :
Memory &4000:LOAD"CARTE.SCR",&4000
J'imagine que cela charge mon image en mémoire à l'adresse &4000 ...
Mais après, pour passer l'image de &4000 à &c000 et qu'ainsi l'image apparaisse d'un coup à l'écran ... je ne sais pas.
J'ai vu qu'il y avait POKE pour placer des choses en mémoire, mais je ne maîtrise pas
Inscription : 04 Jan 2019, 02:05 Message(s) : 52 Localisation : Savoie - FRANCE
Merciiiiii !!!
ça marche, ma carte apparait et disparait, j'ai testé ça dans un petit programme où en appuyant sur une touche on passe de la carte à un écran noir puis on revient ... Nickel !
Mais, pour que l'image apparaisse vraiment je dois utiliser :
OUT &BC00,12:OUT &BD00,16
donc c'est ce code qui affiche mon image qui était dans un coin de la mémoire pour la mettre en mémoire écran visible (&c000).
Ensuite par contre, plus de curseur ! Plus de texte affichable !
Donc il faut un code de plus pour être dans la mémoire écran visible pour mon texte
Comment fait-on ?
Pour revenir en mémoire écran, je tape un code par exemple : "LIST" et le listing commence dans le noir et d'un coup cela fait revenir l'image texte sur l'écran et je vois mon listing qui a déjà commencé. Donc si j'appuie 2 fois sur ESC, les break ne s'affichent pas à l'écran, je tape LIST et cela ne se voit pas non plus, et c'est pendant le listing que le texte revient à l'écran.
Plutôt que changer l'adresse écran, tu vas devoir copier ton image chargée en &4000 vers &C000
Code :
10 MEMORY &7fff 20 FOR a=&8000 TO &8000+11 30 READ a$:POKE a, VAL("&"+a$) 40 NEXT 50 DATA 21, 00, 40 60 DATA 11, 00, C0 70 DATA 01, 00, 40 80 DATA ED, B0, C9
et pour afficher ton image
Code :
call &8000
Ça doit bien faire une bonne vingtaine d'années que je n'ai pas tapé une ligne de Locomotive basic
Outch ... ... beaucoup de codes que je ne comprends pas
Si tu n'as pas l'intention d'apprendre un minimum d'assembleur, tu peux juste utiliser ce bout de code tel quel.
Sinon, en gros, je ne fais que poker à partir de l'adresse &8000 le code assembleur suivant:
Code :
LD HL, &4000 ; source LD DE, &C000 ; destination LD BC, &4000 ; taillle LDIR ; copie RET
Après avoir chargé ton image en mémoire, et le petit programme basic saisi plus haut, à chaque fois que tu fera un call &8000, effectivement ton image sera copiée en &c000.
Inscription : 04 Jan 2019, 02:05 Message(s) : 52 Localisation : Savoie - FRANCE
J'ai essayé ce code :
Code :
10 MEMORY &7fff 20 FOR a=&8000 TO &8000+11 30 READ a$:POKE a, VAL("&"+a$) 40 NEXT 50 DATA 21, 00, 40 60 DATA 11, 00, C0 70 DATA 01, 00, 40 80 DATA ED, B0, C9
J'ai ajouté LOAD"CARTE.SCR",&4000 à la ligne 10 après le memory : 10 MEMORY &3fff:LOAD"CARTE.SCR",&4000
Cela donne un Reset.
J'ai modifié MEMORY &3fff en MEMORY &7fff ... memory full
Je ne comprends pas ces codes, jamais vus ... besoin d'aide
Il me faudrait les codes pour mettre en mémoire l'image SCR, puis les codes pour la faire apparaitre et disparaitre à volonté.
En plus, cette carte est en réalité sur la moitié droite de l'image, du pixel x=180 à x=640, donc pour ne pas effacer la moitié gauche de l'écran du jeu, il faudrait que j'affiche ce bout d'image et pas celui de gauche (de x=1 à x=179).
Inscription : 04 Jan 2019, 02:05 Message(s) : 52 Localisation : Savoie - FRANCE
Merci à tous !
Merci pour ce fichier DSK
Je teste ça dès que ... j'ai réussi à refaire marcher mon Gotek J'ai voulu le mettre à la place du lecteur interne (car il tourne et semble s'abimer car mes disquettes s'abime une à une lorsque le Gotek est branché). Mais j'ai mis l'alim du lecteur interne sur le Gotek ... et là, j'ai F-F même avec ma clé USB connectée, jamais eu ce souci avant.
Je viens de griller le Gotek en mettant une mauvaise alim ?
En remettant la bonne alim 5V ... le F-F est encore là sur l'afficheur. Je vais refaire une clé USB avec fichiers par défaut et voir si le Gotek n'est pas abimé ...
Inscription : 04 Jan 2019, 02:05 Message(s) : 52 Localisation : Savoie - FRANCE
Vérifié, Effectivement il ne fallait pas brancher l'alimentation du lecteur de disquette directement sur le Gotek. ..
Vu sur hxc2001.Free. fr
Edit : 18h41 : Clé USB morte, tuée par le voltage de la prise du lecteur de disquette, clé indétectable par le Gotek ni par un PC. Changement de clé USB.
A mon avis, ça serait plus simple que tu uploades ton image pour qu'on bricole un bout de code. Il te faut en fait une routine d'affiche d'un très gros sprite. C'est pas compliqué à faire, mais sans les caractéristiques du truc à afficher (dimensions, positionnement), c'est pas forcément simple à faire.
Inscription : 04 Jan 2019, 02:05 Message(s) : 52 Localisation : Savoie - FRANCE
Merci
Ma carte en version JPG de PC pour voir à quoi elle ressemblera sur l'écran du CPC :
=============================== La version CPC de 16 Ko en ".SCR" :
Pièce jointe :
CARTE4.zip
en "zip" car en "scr" le forum ne l'accepte pas.
Mon but est de pouvoir afficher cette carte dans mon jeu à chaque fois que l'on veut se déplacer, puis on passe à un écran où on voit le personnage se déplacer donc cette image de la carte va à une autre adresse mémoire que celle de l'écran affiché, et la carte doit pouvoir revenir et repartir à volonté pendant tout le jeu.
Mais : Lorsque cette image SCR est affichée, je dois pouvoir faire des PRINT et des PLOT dessus, je dois afficher différentes choses par dessus et le code qui avait marché précédemment pour afficher la carte et l'enlever ne me permettait pas d'écrire sur la carte (curseur et Ready invisibles) donc mauvaise adresse mémoire d'affichage.
Le code qui a marché chez moi (et qui est court) mais qui enlève le curseur lorsque la carte est affichée est :
Code :
MEMORY &3FFF:LOAD"CARTE4.SCR",&4000 OUT &BC00,12:OUT &BD00,48 OUT &BC00,12:OUT &BD00,16
Merci à demoniakparadox
Vous n’êtes pas autorisé(e) à consulter les fichiers insérés à ce message.
Utilisateur(s) parcourant ce forum : Aucun utilisateur inscrit et 0 invité(s)
Vous ne pouvez pas publier de nouveaux sujets dans ce forum Vous ne pouvez pas répondre aux sujets dans ce forum Vous ne pouvez pas éditer vos messages dans ce forum Vous ne pouvez pas supprimer vos messages dans ce forum Vous ne pouvez pas insérer de pièces jointes dans ce forum