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, 13:52

Index du forum » Z80 Coding

Le fuseau horaire est UTC+1 heure


Modifier l'emplacement du VBL avec un OUT

Modérateur: poulette73



Publier un nouveau sujet Répondre au sujet  Page 1 sur 1
 [ 9 message(s) ] 
  Aperçu avant impression Sujet précédent | Sujet suivant 
Auteur Message
dominique
 Sujet du message : Modifier l'emplacement du VBL avec un OUT
Message Publié : 22 Juin 2008, 15:40 
Hors-ligne

Inscription : 22 Juin 2008, 15:29
Message(s) : 1
Normalement le VBL se déclanche en haut de l'écran.
Les codeurs de démos sur CPC arrivent à modifier l'attente du raster où ils veulent.
Je voudrais connaitre l'astuce de programmation avec un OUT et accompagné d'une explication.


Haut
 Profil  
 
Megachur
 Sujet du message : Re: Modifier l'emplacement du VBL avec un OUT
Message Publié : 22 Juin 2008, 19:57 
Hors-ligne
VIP
VIP
Avatar de l’utilisateur

Inscription : 12 Juin 2008, 20:29
Message(s) : 1726
qu'est-ce que tu veux faire exactement ?

en fait, il suffit de prendre la main en asm (sans les interruptions amsdos) et de créer un programme asm qui fait en sorte que l'écran ne soit plus synchronisé à 50hz...

mais est-ce que c'est ce que tu veux exactement ? :roll:


Haut
 Profil  
 
cmp
 Sujet du message : Re: Modifier l'emplacement du VBL avec un OUT
Message Publié : 25 Juil 2008, 00:51 
Hors-ligne
VIP
VIP

Inscription : 29 Août 2007, 09:29
Message(s) : 49
Localisation : lille
euih c'est tout con


frame ld b,#F5
in a,(c)
rra
jr nc,frame
;
;tu veux attendre 1 ligne apres la vbl
;facile

ds 64,0 ;64 Nops

jp frame


apres tu fais tes rasters ou tu veux :) ce ne sont que des boucles :)

_________________
CMP FROM IMPACT


Haut
 Profil  
 
BDCIron
 Sujet du message : Re: Modifier l'emplacement du VBL avec un OUT
Message Publié : 25 Juil 2008, 01:52 
Ca va bouger ton truc CMP en plus en fonction du CRTC tu ne sera pas au meme endroit... Et rien ne dit que tu as choppé le debut de la VBL...


Haut
  
 
markerror
 Sujet du message : Re: Modifier l'emplacement du VBL avec un OUT
Message Publié : 25 Juil 2008, 07:41 
Hors-ligne
VIP
VIP

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

Si je décrypte la question, l'idée n'est pas de modifier le début de la VBL, mais plutôt de savoir comment faire des changement de palettes et de mode. Le plus simple, c'est de récupérer un exemple de routine de rasters, si elle n'est pas pourrite, tout devrait s'éclairer :-).

La technique est assez simple en fait, si on veut changer une couleur à une ligne précise de l'écran, il faut :

1) Virer les interruptions avec un DI et détourner le vecteur &38 en lui pokant un EI RET (FB C9). Si on ne détourne pas ce vecteur, le "raster" ne sera pas parfaitement stable.

2) se synchroniser sur le début de la VBL (avec l'équivalent d'un CALL &BD19), la routine décrite au dessus par CMP

3) attendre...
- soit en utilisant des commandes HALT (en n'oubliant alors pas de remettre les interruptions en ligne par un EI NOP) dont la fonction est en gros d'attendre 300ms (soit 1/6ème de la hauteur de l'écran).
- soit avec une simple boucle qui incrémente un registre 16 bits.
En général, on mélange plutôt les deux méthodés :-)

4) modifier la couleur.

C'est pas plus compliqué que cela !

T&J/GPA


Haut
 Profil  
 
cmp
 Sujet du message : Re: Modifier l'emplacement du VBL avec un OUT
Message Publié : 25 Juil 2008, 08:04 
Hors-ligne
VIP
VIP

Inscription : 29 Août 2007, 09:29
Message(s) : 49
Localisation : lille
voilà en gros ce que disais TOM ;)



ORG #1000
; ENT $
;
;
DI
LD hl,(#38)
LD (INTER),hl
LD hl,#c9fb
LD (#38),hl
;
;
EI
main
LD b,#F5
syn IN a,(c)
RRA
JR nc,syn
;
HALT ;Les halts arrivent tous les 52lignes donc 52*6=312,5
HALT
;
ld bc,#7F00
out (c),c
ld a,#5C
out (c),c

;
HALT
ld bc,#7F00
out (c),c
ld a,#4C
out (c),c


;
HALT
ld bc,#7F00
out (c),c
ld a,#4E
out (c),c

;
HALT
ld bc,#7F00
out (c),c
ld a,#54
out (c),c

;test space
LD bc,#F40E
OUT (c),c
LD bc,#F6C0
OUT (c),c
XOR a
OUT (c),a
LD bc,#F792
OUT (c),c
DEC b
LD c,#45
OUT (c),c
LD b,#F4
IN a,(c)
LD bc,#F782
OUT (c),c
DEC b
LD c,#00
OUT (c),c
AND #80
JP nz,main
;
; retour au systeme et restaure interruption z80
sys
;
LD bc,#bc04
OUT (c),c
INC b
LD c,38
OUT (c),c
;
LD bc,#bc02
OUT (c),c
INC b
LD c,46
OUT (c),c
;
LD bc,#bc01
OUT (c),c
INC b
LD c,40
OUT (c),c
;
LD bc,#bc07
OUT (c),c
INC b
LD c,30
OUT (c),c
LD bc,#bc06
OUT (c),c
INC b
LD c,25
OUT (c),c
;
LD bc,#bc0C
OUT (c),c
LD bc,#bd30
OUT (c),c
LD bc,#bc0D
OUT (c),c
LD bc,#BD00
OUT (c),c
;
;
LD hl,(INTER)
LD (#38),HL
EI
;
RET
INTER DW 0

_________________
CMP FROM IMPACT


Haut
 Profil  
 
hERMOL
 Sujet du message : Re: Modifier l'emplacement du VBL avec un OUT
Message Publié : 25 Juil 2008, 08:58 
Hors-ligne
Site Admin
Avatar de l’utilisateur

Inscription : 20 Août 2007, 18:21
Message(s) : 5103
pour info des tonnes d'articles sur le sujet rasters sont à lire sur le site ...

http://www.google.fr/search?hl=fr&sites ... cher&meta=
https://cpcrulez.fr/coding.htm#CRTCA100


Haut
 Profil  
 
BDCIron
 Sujet du message : Re: Modifier l'emplacement du VBL avec un OUT
Message Publié : 25 Juil 2008, 11:27 
Ta routine CMP ne marchera toujours pas de la même façon sur tous les CPC... Exemple sur CRTC 1, ton premier HALT choppera l'interruption qui a lieu en même temps que la VBL tandis que sur les autres tu seras sur la 2ème... Pour palier à cela, un petit LB B,32:DJNZ $ avant le premier HALT te permettra au moins d'éviter cela.


Haut
  
 
cmp
 Sujet du message : Re: Modifier l'emplacement du VBL avec un OUT
Message Publié : 25 Juil 2008, 13:16 
Hors-ligne
VIP
VIP

Inscription : 29 Août 2007, 09:29
Message(s) : 49
Localisation : lille
je le sais bien amaury :)

le but etait d'écrire en code assembleur :) le litteral de ce cher tom :)


bien sur, je suis totalement d'accord avec ce que tu dis :)


petite question pour la personne ayant posté : Cela te convient-il ?

_________________
CMP FROM IMPACT


Haut
 Profil  
 
Afficher les messages publiés depuis :  Trier par  
Publier un nouveau sujet Répondre au sujet  Page 1 sur 1
 [ 9 message(s) ] 

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