Index du forum




Un petit coup de main... Vous pouvez nous aider à mettre ce site à jour: n'hésitez pas à me contacter !!!

* Connexion   * Inscription

* FAQ
Nous sommes actuellement le 01 Déc 2025, 18:15

Index du forum » Z80 Coding

Le fuseau horaire est UTC+1 heure


Charger une image.SCR et l'afficher plus tard ?

Modérateur: poulette73



Publier un nouveau sujet Répondre au sujet  Page 1 sur 2
 [ 26 message(s) ]  Aller vers la page 1, 2  Suivant
  Aperçu avant impression Sujet précédent | Sujet suivant 
Auteur Message
Bioris
 Sujet du message : Charger une image.SCR et l'afficher plus tard ?
Message Publié : 23 Jan 2019, 22:37 
Hors-ligne
Rulez
Rulez
Avatar de l’utilisateur

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 :(

Je précise que je ne connais que le BASIC.

Quelqu'un connais ? :-|


Haut
 Profil  
 
Fredouille
 Sujet du message : Re: Charger une image.SCR et l'afficher plus tard ?
Message Publié : 24 Jan 2019, 08:30 
Hors-ligne
Rulezz
Rulezz
Avatar de l’utilisateur

Inscription : 26 Nov 2008, 10:04
Message(s) : 174
Localisation : Saint Ouen l'Aumône
Je ne suis pas du tout spécialiste, mais peut-être que jouer avec les registres R12 et R13 du CRTC peuvent faire apparaitre une image d'un coup.


Haut
 Profil  
 
Bioris
 Sujet du message : Re: Charger une image.SCR et l'afficher plus tard ?
Message Publié : 24 Jan 2019, 18:21 
Hors-ligne
Rulez
Rulez
Avatar de l’utilisateur

Inscription : 04 Jan 2019, 02:05
Message(s) : 52
Localisation : Savoie - FRANCE
:twisted:

Heu, je ne connais pas cela ...
Il me faudrait les commandes avec Memory / Call / Poke :D


Haut
 Profil  
 
GurneyH
 Sujet du message : Re: Charger une image.SCR et l'afficher plus tard ?
Message Publié : 24 Jan 2019, 18:43 
Hors-ligne
Rulez
Rulez

Inscription : 19 Sep 2009, 19:38
Message(s) : 16
Localisation : Tours
Salut,

Tu peux changer l'adresse de début de la mémoire vidéo et la faire pointer en &4000.

Code :
out &bc00, 12
out &bd00, &10


Pour pointer de nouveau en &c000

Code :
out &bc00, 12
out &bd00, &30


Logon System ACPC n°31 - Le CRTC


Haut
 Profil  
 
demoniakparadox
 Sujet du message : Re: Charger une image.SCR et l'afficher plus tard ?
Message Publié : 24 Jan 2019, 18:53 
Hors-ligne
Rulezz
Rulezz

Inscription : 26 Août 2013, 11:55
Message(s) : 70
Fredouille a écrit :
Je ne suis pas du tout spécialiste, mais peut-être que jouer avec les registres R12 et R13 du CRTC peuvent faire apparaitre une image d'un coup.


Effectivement, comme l'a dit Fredouille, sous basic, tu peux faire ceci:
Code :
OUT &BC00,12:OUT &BD00,16
pour afficher l'image en &4000

puis :
Code :
OUT &BC00,12:OUT &BD00,48
pour revenir à l'état "normal" (image en &C000)

Sinon juste une petite correction, pour pouvoir lire ton image en &4000 il faut faire :
Code :
MEMORY &3FFF:LOAD"Image.scr",&4000


Haut
 Profil  
 
Bioris
 Sujet du message : Re: Charger une image.SCR et l'afficher plus tard ?
Message Publié : 24 Jan 2019, 20:02 
Hors-ligne
Rulez
Rulez
Avatar de l’utilisateur

Inscription : 04 Jan 2019, 02:05
Message(s) : 52
Localisation : Savoie - FRANCE
Merciiiiii !!! :D :D

ç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 ! :o

Donc il faut un code de plus pour être dans la mémoire écran visible pour mon texte :twisted:

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.

Help please :)


Haut
 Profil  
 
GurneyH
 Sujet du message : Re: Charger une image.SCR et l'afficher plus tard ?
Message Publié : 24 Jan 2019, 21:07 
Hors-ligne
Rulez
Rulez

Inscription : 19 Sep 2009, 19:38
Message(s) : 16
Localisation : Tours
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
:D


Haut
 Profil  
 
Bioris
 Sujet du message : Re: Charger une image.SCR et l'afficher plus tard ?
Message Publié : 24 Jan 2019, 21:50 
Hors-ligne
Rulez
Rulez
Avatar de l’utilisateur

Inscription : 04 Jan 2019, 02:05
Message(s) : 52
Localisation : Savoie - FRANCE
Outch ... :o ... beaucoup de codes que je ne comprends pas :twisted:

Je testerai demain.

Est-ce que à chaque fois que je taperai "call &8000" ça m'affichera l'image ?

Ou alors je dois, pour l'enlever, la rebasculer dans un coin de la Ram ? :sigh:

... mais, il n'y a pas LOAD"CARTE.SCR" dans ce code ? ... :twisted:


Haut
 Profil  
 
GurneyH
 Sujet du message : Re: Charger une image.SCR et l'afficher plus tard ?
Message Publié : 24 Jan 2019, 22:05 
Hors-ligne
Rulez
Rulez

Inscription : 19 Sep 2009, 19:38
Message(s) : 16
Localisation : Tours
Bioris a écrit :
Outch ... :o ... beaucoup de codes que je ne comprends pas :twisted:


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.


Haut
 Profil  
 
Bioris
 Sujet du message : Re: Charger une image.SCR et l'afficher plus tard ?
Message Publié : 24 Jan 2019, 23:22 
Hors-ligne
Rulez
Rulez
Avatar de l’utilisateur

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 :sigh:

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).

Là je suis loin d'arriver à ce but ... :twisted:


Haut
 Profil  
 
hERMOL
 Sujet du message : Re: Charger une image.SCR et l'afficher plus tard ?
Message Publié : 25 Jan 2019, 11:00 
Hors-ligne
Site Admin
Avatar de l’utilisateur

Inscription : 20 Août 2007, 18:21
Message(s) : 5103
un petit .dsk d'exemple ...


Vous n’êtes pas autorisé(e) à consulter les fichiers insérés à ce message.


Haut
 Profil  
 
Bioris
 Sujet du message : Re: Charger une image.SCR et l'afficher plus tard ?
Message Publié : 25 Jan 2019, 16:13 
Hors-ligne
Rulez
Rulez
Avatar de l’utilisateur

Inscription : 04 Jan 2019, 02:05
Message(s) : 52
Localisation : Savoie - FRANCE
Merci à tous !

Merci pour ce fichier DSK :D

Je teste ça dès que ... j'ai réussi à refaire marcher mon Gotek :sigh:
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 ? :o

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é ...


Haut
 Profil  
 
Bioris
 Sujet du message : Re: Charger une image.SCR et l'afficher plus tard ?
Message Publié : 25 Jan 2019, 17:28 
Hors-ligne
Rulez
Rulez
Avatar de l’utilisateur

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.


Haut
 Profil  
 
markerror
 Sujet du message : Re: Charger une image.SCR et l'afficher plus tard ?
Message Publié : 26 Jan 2019, 09:01 
Hors-ligne
VIP
VIP

Inscription : 04 Sep 2007, 19:43
Message(s) : 739
Bonjour,

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.

Markerror


Haut
 Profil  
 
Bioris
 Sujet du message : Re: Charger une image.SCR et l'afficher plus tard ?
Message Publié : 27 Jan 2019, 10:36 
Hors-ligne
Rulez
Rulez
Avatar de l’utilisateur

Inscription : 04 Jan 2019, 02:05
Message(s) : 52
Localisation : Savoie - FRANCE
Merci :D

Ma carte en version JPG de PC pour voir à quoi elle ressemblera sur l'écran du CPC :
Image

===============================
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.


Haut
 Profil  
 
Afficher les messages publiés depuis :  Trier par  
Publier un nouveau sujet Répondre au sujet  Page 1 sur 2
 [ 26 message(s) ]  Aller vers la page 1, 2  Suivant

Index du forum » Z80 Coding

Le fuseau horaire est UTC+1 heure


Qui est en ligne ?

Utilisateur(s) parcourant ce forum : Aucun utilisateur inscrit et 24 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

Aller vers :  
Powered by phpBB® Forum Software © phpBB Group
Traduit en français par Maël Soucaze.