Amstrad Plus Index du Forum

Amstrad Plus
Découverte de la gamme Old et Plus des Cpc d'Amstrad.

 FAQFAQ   RechercherRechercher   MembresMembres   GroupesGroupes   S’enregistrerS’enregistrer 
 ProfilProfil   Se connecter pour vérifier ses messages privésSe connecter pour vérifier ses messages privés   ConnexionConnexion 

***** Affichage d'un Window (sauvegardé avec iMPdraw ou Ocp)

 
Poster un nouveau sujet   Répondre au sujet    Amstrad Plus Index du Forum -> Bienvenue sur ce forum -> Programmation
Sujet précédent :: Sujet suivant  
Auteur Message
Ast
Administrateur

En ligne

Inscrit le: 05 Sep 2014
Messages: 2 321

MessagePosté le: Lun 14 Déc - 11:36 (2015)    Sujet du message: ***** Affichage d'un Window (sauvegardé avec iMPdraw ou Ocp) Répondre en citant

Dans un esprit de continuité durant ces fêtes de noël, voici une nouvelle routine qui devrait être utile à certain d'entre vous, l'affichage d'un Window sauvegardé sous iMPdraw ou Ocp.

Code:
          ld hl,#4000 ; adresse source du fichier chargé .win
          ld de,#c000 ; adresse destination (où l'on veut afficher l'image sur l'écran)
          ld b,hauteur ; l'image contient x lignes de hauteur
;
loowin push bc ; on sauve le nombre de lignes
          push de ; et l'adresse ecran de départ
          ld bc,largeur ; largeur de l'image
          ldir               ; on copie tout
          pop de          ; on récupère l'adresse écran (1ère ligne) afin de calculer la prochaine adresse écran
          call mybc26   ; on calcule la ligne suivante
          pop bc          ; on recupère le nombre de lignes sauvés plus haut
          djnz loowin   ; on reboucle tant que le nombre de ligne <>0
          ret
;
mybc26  ld a,d       ; on récupère le poids fort du registre d
             add a,8     
             ld d,a       ; on remet la bonne valeur à d
             ret nc       ; on s'arrête ici si pas de dépassement (a>#ff)
             ex de,hl    ; on inverse le contenu des registres HL et De
             ld bc,#c050 ; prochaine ligne si écran de 80 caractères
             add hl,bc     ; on a ici la prochaine ligne après calcul
             ex de,hl    ; on remets les valeurs de registres HL et DE à leur place
             ret




Vous aurez sans doute remarqué ici l'utilisation de l'instruction z80 ex de,hl. Cette instruction inverse le contenu des double registre HL et DE.
Donc, si hl=#4000 et de=#C000, après un ex de,hl, hl=#c000 et de=#4000.

Veuillez noter également que cette instruction ne prends que 1us, soit 2 us dans la routine ci-dessus. En effet, une pour inverser les registres, et une pour remettre tout en place.

Il n'y a pas d'autre choix ici que d'utiliser l'inversion des registres HL et DE car il n'existe pas d'addition avec le registre 16 bits DE. (add de,bc n'existant pas)

L'addition effectuée avec BC (#c050) varie en fonction de la valeur du registre 1 du Crtc (#28 dans le cas présent) qui comme tout le monde le sait défini le nombre d'octets * 2 à afficher sur l'écran.

Si vous avez des questions sur ce point, n'hésitez pas.

Case, tu devrais avoir tout en main pour réaliser ton programme maintenant, non ?
_________________
Ast/iMP4CT

"Par le pouvoir du crâne ancestral...."


Revenir en haut
Publicité






MessagePosté le: Lun 14 Déc - 11:36 (2015)    Sujet du message: Publicité

PublicitéSupprimer les publicités ?
Revenir en haut
fgbrain


Hors ligne

Inscrit le: 01 Juin 2015
Messages: 11
Localisation: Greece

MessagePosté le: Dim 3 Avr - 18:03 (2016)    Sujet du message: ***** Affichage d'un Window (sauvegardé avec iMPdraw ou Ocp) Répondre en citant

Question Cant you be more specific?? Where exactly the window dimensions (in bytes) is stored in each file???

ATB


Revenir en haut
Ast
Administrateur

En ligne

Inscrit le: 05 Sep 2014
Messages: 2 321

MessagePosté le: Dim 3 Avr - 18:27 (2016)    Sujet du message: ***** Affichage d'un Window (sauvegardé avec iMPdraw ou Ocp) Répondre en citant

If you spoke about iMPdraw, the size of the Window depends of what you have selected.
From the routine just up, the Windows is defined by two parameters called largeur and hauteur.
_________________
Ast/iMP4CT

"Par le pouvoir du crâne ancestral...."


Revenir en haut
fgbrain


Hors ligne

Inscrit le: 01 Juin 2015
Messages: 11
Localisation: Greece

MessagePosté le: Dim 3 Avr - 18:53 (2016)    Sujet du message: ***** Affichage d'un Window (sauvegardé avec iMPdraw ou Ocp) Répondre en citant

It seems you didnt get my question... I'm talking about the .WIN format from OCP.  Where the x and y sizes are stored?

Revenir en haut
Ast
Administrateur

En ligne

Inscrit le: 05 Sep 2014
Messages: 2 321

MessagePosté le: Dim 3 Avr - 19:10 (2016)    Sujet du message: ***** Affichage d'un Window (sauvegardé avec iMPdraw ou Ocp) Répondre en citant

Look at the last five bytes of .win file.
_________________
Ast/iMP4CT

"Par le pouvoir du crâne ancestral...."


Revenir en haut
TFM


Hors ligne

Inscrit le: 05 Sep 2014
Messages: 161

MessagePosté le: Mar 3 Mai - 16:35 (2016)    Sujet du message: ***** Affichage d'un Window (sauvegardé avec iMPdraw ou Ocp) Répondre en citant

Does iMPdraw use the same format for windows as OCP?

Revenir en haut
Ast
Administrateur

En ligne

Inscrit le: 05 Sep 2014
Messages: 2 321

MessagePosté le: Mar 3 Mai - 16:40 (2016)    Sujet du message: ***** Affichage d'un Window (sauvegardé avec iMPdraw ou Ocp) Répondre en citant

Of course, it does.
But if you decided to save a windows>80 chars Ocp can't display it correctly because it doesn't work in fullscreen (96 chars)...
All Windows>80 chars Will be 100 percent compatibles.
_________________
Ast/iMP4CT

"Par le pouvoir du crâne ancestral...."


Revenir en haut
TFM


Hors ligne

Inscrit le: 05 Sep 2014
Messages: 161

MessagePosté le: Mar 3 Mai - 22:04 (2016)    Sujet du message: ***** Affichage d'un Window (sauvegardé avec iMPdraw ou Ocp) Répondre en citant

Nice!

Revenir en haut
Ast
Administrateur

En ligne

Inscrit le: 05 Sep 2014
Messages: 2 321

MessagePosté le: Mar 3 Mai - 22:08 (2016)    Sujet du message: ***** Affichage d'un Window (sauvegardé avec iMPdraw ou Ocp) Répondre en citant

Have you tested it ?
_________________
Ast/iMP4CT

"Par le pouvoir du crâne ancestral...."


Revenir en haut
Contenu Sponsorisé






MessagePosté le: Aujourd’hui à 15:43 (2017)    Sujet du message: ***** Affichage d'un Window (sauvegardé avec iMPdraw ou Ocp)

Revenir en haut
Montrer les messages depuis:   
Poster un nouveau sujet   Répondre au sujet    Amstrad Plus Index du Forum -> Bienvenue sur ce forum -> Programmation Toutes les heures sont au format GMT + 1 Heure
Page 1 sur 1

 
Sauter vers:  

Index | Panneau d’administration | Creer un forum | Forum gratuit d’entraide | Annuaire des forums gratuits | Signaler une violation | Conditions générales d'utilisation
Powered by phpBB © 2001, 2005 phpBB Group
Traduction par : phpBB-fr.com