Amstrad Plus Forum Index

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

 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

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

 
Post new topic   Reply to topic    Amstrad Plus Forum Index -> Programmation Cpc -> Affichage video
Previous topic :: Next topic  
Author Message
Ast
Administrateur

Offline

Joined: 05 Sep 2014
Posts: 2,977
Masculin
Point(s): 390
Moyenne de points: 0.13

PostPosted: Mon 14 Dec - 12:36 (2015)    Post subject: ***** Affichage d'un Window (sauvegardé avec iMPdraw ou Ocp) Reply with quote

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 doubles registres 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...."


Last edited by Ast on Tue 18 Sep - 01:20 (2018); edited 1 time in total
Back to top
Publicité






PostPosted: Mon 14 Dec - 12:36 (2015)    Post subject: Publicité

PublicitéSupprimer les publicités ?
Back to top
fgbrain


Offline

Joined: 01 Jun 2015
Posts: 17
Localisation: Greece
Masculin
Point(s): 1
Moyenne de points: 0.06

PostPosted: Sun 3 Apr - 19:03 (2016)    Post subject: ***** Affichage d'un Window (sauvegardé avec iMPdraw ou Ocp) Reply with quote

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

ATB


Back to top
Ast
Administrateur

Offline

Joined: 05 Sep 2014
Posts: 2,977
Masculin
Point(s): 390
Moyenne de points: 0.13

PostPosted: Sun 3 Apr - 19:27 (2016)    Post subject: ***** Affichage d'un Window (sauvegardé avec iMPdraw ou Ocp) Reply with quote

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


Back to top
fgbrain


Offline

Joined: 01 Jun 2015
Posts: 17
Localisation: Greece
Masculin
Point(s): 1
Moyenne de points: 0.06

PostPosted: Sun 3 Apr - 19:53 (2016)    Post subject: ***** Affichage d'un Window (sauvegardé avec iMPdraw ou Ocp) Reply with quote

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

Back to top
Ast
Administrateur

Offline

Joined: 05 Sep 2014
Posts: 2,977
Masculin
Point(s): 390
Moyenne de points: 0.13

PostPosted: Sun 3 Apr - 20:10 (2016)    Post subject: ***** Affichage d'un Window (sauvegardé avec iMPdraw ou Ocp) Reply with quote

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

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


Back to top
TFM


Offline

Joined: 05 Sep 2014
Posts: 240
Masculin
Point(s): 46
Moyenne de points: 0.19

PostPosted: Tue 3 May - 17:35 (2016)    Post subject: ***** Affichage d'un Window (sauvegardé avec iMPdraw ou Ocp) Reply with quote

Does iMPdraw use the same format for windows as OCP?

Back to top
Ast
Administrateur

Offline

Joined: 05 Sep 2014
Posts: 2,977
Masculin
Point(s): 390
Moyenne de points: 0.13

PostPosted: Tue 3 May - 17:40 (2016)    Post subject: ***** Affichage d'un Window (sauvegardé avec iMPdraw ou Ocp) Reply with quote

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


Back to top
TFM


Offline

Joined: 05 Sep 2014
Posts: 240
Masculin
Point(s): 46
Moyenne de points: 0.19

PostPosted: Tue 3 May - 23:04 (2016)    Post subject: ***** Affichage d'un Window (sauvegardé avec iMPdraw ou Ocp) Reply with quote

Nice!

Back to top
Ast
Administrateur

Offline

Joined: 05 Sep 2014
Posts: 2,977
Masculin
Point(s): 390
Moyenne de points: 0.13

PostPosted: Tue 3 May - 23:08 (2016)    Post subject: ***** Affichage d'un Window (sauvegardé avec iMPdraw ou Ocp) Reply with quote

Have you tested it ?
_________________
Ast/iMP4CT

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


Back to top
Sid


Offline

Joined: 01 May 2018
Posts: 153
Masculin
Point(s): 120
Moyenne de points: 0.78

PostPosted: Mon 14 May - 14:17 (2018)    Post subject: ***** Affichage d'un Window (sauvegardé avec iMPdraw ou Ocp) Reply with quote

question stupide, comment connait on le nombre de ligne et la largeur de son fichier win ?

Back to top
Ast
Administrateur

Offline

Joined: 05 Sep 2014
Posts: 2,977
Masculin
Point(s): 390
Moyenne de points: 0.13

PostPosted: Mon 14 May - 15:17 (2018)    Post subject: ***** Affichage d'un Window (sauvegardé avec iMPdraw ou Ocp) Reply with quote

Sid wrote:
question stupide, comment connait on le nombre de ligne et la largeur de son fichier win ?





Ast wrote:
Look at the last five bytes of .win file.


Mort de Rire
_________________
Ast/iMP4CT

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


Back to top
Sid


Offline

Joined: 01 May 2018
Posts: 153
Masculin
Point(s): 120
Moyenne de points: 0.78

PostPosted: Mon 14 May - 15:36 (2018)    Post subject: ***** Affichage d'un Window (sauvegardé avec iMPdraw ou Ocp) Reply with quote

thanks

Back to top
Display posts from previous:   
Post new topic   Reply to topic    Amstrad Plus Forum Index -> Programmation Cpc -> Affichage video All times are GMT + 2 Hours
Page 1 of 1

 
Jump to:  

Index | Administration Panel | Create a forum | Free support forum | Free forums directory | Report a violation | Cookies | Charte | Conditions générales d'utilisation
Powered by phpBB © 2001, 2005 phpBB Group